!!(n=r.call({lexer:this},t,e))&&(t=t.substring(n.raw.length),e.push(n),!0)))continue;if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length);let r=e.at(-1);1===n.raw.length&&void 0!==r?r.raw+="\n":e.push(n);continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length);let r=e.at(-1);"paragraph"===r?.type||"text"===r?.type?(r.raw+=(r.raw.endsWith("\n")?"":"\n")+n.raw,r.text+="\n"+n.text,this.inlineQueue.at(-1).src=r.text):e.push(n);continue}if(n=this.tokenizer.fences(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.heading(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.hr(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.blockquote(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.list(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.html(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.def(t)){t=t.substring(n.raw.length);let r=e.at(-1);"paragraph"===r?.type||"text"===r?.type?(r.raw+=(r.raw.endsWith("\n")?"":"\n")+n.raw,r.text+="\n"+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.lheading(t)){t=t.substring(n.raw.length),e.push(n);continue}let i=t;if(this.options.extensions?.startBlock){let e,r=1/0,n=t.slice(1);this.options.extensions.startBlock.forEach(t=>{e=t.call({lexer:this},n),"number"==typeof e&&e>=0&&(r=Math.min(r,e))}),r<1/0&&r>=0&&(i=t.substring(0,r+1))}if(this.state.top&&(n=this.tokenizer.paragraph(i))){let a=e.at(-1);r&&"paragraph"===a?.type?(a.raw+=(a.raw.endsWith("\n")?"":"\n")+n.raw,a.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):e.push(n),r=i.length!==t.length,t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length);let r=e.at(-1);"text"===r?.type?(r.raw+=(r.raw.endsWith("\n")?"":"\n")+n.raw,r.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):e.push(n);continue}if(t){let e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw new Error(e)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let r=t,n=null;if(this.tokens.links){let t=Object.keys(this.tokens.links);if(t.length>0)for(;null!=(n=this.tokenizer.rules.inline.reflinkSearch.exec(r));)t.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(n=this.tokenizer.rules.inline.anyPunctuation.exec(r));)r=r.slice(0,n.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;null!=(n=this.tokenizer.rules.inline.blockSkip.exec(r));)r=r.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let i=!1,a="";for(;t;){let n;if(i||(a=""),i=!1,this.options.extensions?.inline?.some(r=>!!(n=r.call({lexer:this},t,e))&&(t=t.substring(n.raw.length),e.push(n),!0)))continue;if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length);let r=e.at(-1);"text"===n.type&&"text"===r?.type?(r.raw+=n.raw,r.text+=n.text):e.push(n);continue}if(n=this.tokenizer.emStrong(t,r,a)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),e.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),e.push(n);continue}let o=t;if(this.options.extensions?.startInline){let e,r=1/0,n=t.slice(1);this.options.extensions.startInline.forEach(t=>{e=t.call({lexer:this},n),"number"==typeof e&&e>=0&&(r=Math.min(r,e))}),r<1/0&&r>=0&&(o=t.substring(0,r+1))}if(n=this.tokenizer.inlineText(o)){t=t.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(a=n.raw.slice(-1)),i=!0;let r=e.at(-1);"text"===r?.type?(r.raw+=n.raw,r.text+=n.text):e.push(n);continue}if(t){let e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw new Error(e)}}return e}},Tt=class{options;parser;constructor(t){this.options=t||v}space(t){return""}code({text:t,lang:e,escaped:r}){let n=(e||"").match(T.notSpaceStart)?.[0],i=t.replace(T.endingNewline,"")+"\n";return n?''+(r?i:kt(i,!0))+" \n":""+(r?i:kt(i,!0))+" \n"}blockquote({tokens:t}){return`\n${this.parser.parse(t)} \n`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} \n`}hr(t){return" \n"}list(t){let e=t.ordered,r=t.start,n="";for(let a=0;a\n"+n+""+i+">\n"}listitem(t){let e="";if(t.task){let r=this.checkbox({checked:!!t.checked});t.loose?"paragraph"===t.tokens[0]?.type?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&"text"===t.tokens[0].tokens[0].type&&(t.tokens[0].tokens[0].text=r+" "+kt(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`${e} \n`}checkbox({checked:t}){return" '}paragraph({tokens:t}){return`${this.parser.parseInline(t)}
\n`}table(t){let e="",r="";for(let i=0;i${n}`),"\n"}tablerow({text:t}){return`\n${t} \n`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+`${r}>\n`}strong({tokens:t}){return`${this.parser.parseInline(t)} `}em({tokens:t}){return`${this.parser.parseInline(t)} `}codespan({text:t}){return`${kt(t,!0)}`}br(t){return" "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let n=this.parser.parseInline(r),i=Ct(t);if(null===i)return n;let a='"+n+" ",a}image({href:t,title:e,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let i=Ct(t);if(null===i)return kt(r);let a=` ",a}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:kt(t.text)}},Mt=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}},Bt=class t{options;renderer;textRenderer;constructor(t){this.options=t||v,this.options.renderer=this.options.renderer||new Tt,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Mt}static parse(e,r){return new t(r).parse(e)}static parseInline(e,r){return new t(r).parseInline(e)}parse(t,e=!0){let r="";for(let n=0;n{let i=t[n].flat(1/0);r=r.concat(this.walkTokens(i,e))}):t.tokens&&(r=r.concat(this.walkTokens(t.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(t=>{let r={...t};if(r.async=this.defaults.async||r.async||!1,t.extensions&&(t.extensions.forEach(t=>{if(!t.name)throw new Error("extension name required");if("renderer"in t){let r=e.renderers[t.name];e.renderers[t.name]=r?function(...e){let n=t.renderer.apply(this,e);return!1===n&&(n=r.apply(this,e)),n}:t.renderer}if("tokenizer"in t){if(!t.level||"block"!==t.level&&"inline"!==t.level)throw new Error("extension level must be 'block' or 'inline'");let r=e[t.level];r?r.unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&("block"===t.level?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:"inline"===t.level&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}"childTokens"in t&&t.childTokens&&(e.childTokens[t.name]=t.childTokens)}),r.extensions=e),t.renderer){let e=this.defaults.renderer||new Tt(this.defaults);for(let r in t.renderer){if(!(r in e))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let n=r,i=t.renderer[n],a=e[n];e[n]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=a.apply(e,t)),r||""}}r.renderer=e}if(t.tokenizer){let e=this.defaults.tokenizer||new St(this.defaults);for(let r in t.tokenizer){if(!(r in e))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let n=r,i=t.tokenizer[n],a=e[n];e[n]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=a.apply(e,t)),r}}r.tokenizer=e}if(t.hooks){let e=this.defaults.hooks||new Lt;for(let r in t.hooks){if(!(r in e))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let n=r,i=t.hooks[n],a=e[n];Lt.passThroughHooks.has(r)?e[n]=t=>{if(this.defaults.async)return Promise.resolve(i.call(e,t)).then(t=>a.call(e,t));let r=i.call(e,t);return a.call(e,r)}:e[n]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=a.apply(e,t)),r}}r.hooks=e}if(t.walkTokens){let e=this.defaults.walkTokens,n=t.walkTokens;r.walkTokens=function(t){let r=[];return r.push(n.call(this,t)),e&&(r=r.concat(e.call(this,t))),r}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return At.lex(t,e??this.defaults)}parser(t,e){return Bt.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let n={...r},i={...this.defaults,...n},a=this.onError(!!i.silent,!!i.async);if(!0===this.defaults.async&&!1===n.async)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||null===e)return a(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof e)return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);let o=i.hooks?i.hooks.provideLexer():t?At.lex:At.lexInline,s=i.hooks?i.hooks.provideParser():t?Bt.parse:Bt.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(t=>o(t,i)).then(t=>i.hooks?i.hooks.processAllTokens(t):t).then(t=>i.walkTokens?Promise.all(this.walkTokens(t,i.walkTokens)).then(()=>t):t).then(t=>s(t,i)).then(t=>i.hooks?i.hooks.postprocess(t):t).catch(a);try{i.hooks&&(e=i.hooks.preprocess(e));let t=o(e,i);i.hooks&&(t=i.hooks.processAllTokens(t)),i.walkTokens&&this.walkTokens(t,i.walkTokens);let r=s(t,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(l){return a(l)}}}onError(t,e){return r=>{if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t){let t="An error occurred:
"+kt(r.message+"",!0)+" ";return e?Promise.resolve(t):t}if(e)return Promise.reject(r);throw r}}};function $t(t,e){return Ft.parse(t,e)}$t.options=$t.setOptions=function(t){return Ft.setOptions(t),$t.defaults=Ft.defaults,_($t.defaults),$t},$t.getDefaults=w,$t.defaults=v,$t.use=function(...t){return Ft.use(...t),$t.defaults=Ft.defaults,_($t.defaults),$t},$t.walkTokens=function(t,e){return Ft.walkTokens(t,e)},$t.parseInline=Ft.parseInline,$t.Parser=Bt,$t.parser=Bt.parse,$t.Renderer=Tt,$t.TextRenderer=Mt,$t.Lexer=At,$t.lexer=At.lex,$t.Tokenizer=St,$t.Hooks=Lt,$t.parse=$t;$t.options,$t.setOptions,$t.use,$t.walkTokens,$t.parseInline,Bt.parse,At.lex;var Et=r(513),Nt={body:'? ',height:80,width:80},Dt=new Map,Ot=new Map,jt=(0,i.K2)(t=>{for(const e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(i.Rm.debug("Registering icon pack:",e.name),"loader"in e)Ot.set(e.name,e.loader);else{if(!("icons"in e))throw i.Rm.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.');Dt.set(e.name,e.icons)}}},"registerIconPacks"),It=(0,i.K2)(async(t,e)=>{const r=((t,e,r,n="")=>{const i=t.split(":");if("@"===t.slice(0,1)){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){const t=i.pop(),r=i.pop(),o={provider:i.length>0?i[0]:n,prefix:r,name:t};return e&&!a(o)?null:o}const o=i[0],s=o.split("-");if(s.length>1){const t={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!a(t)?null:t}if(r&&""===n){const t={provider:n,prefix:"",name:o};return e&&!a(t,r)?null:t}return null})(t,!0,void 0!==e);if(!r)throw new Error(`Invalid icon name: ${t}`);const n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let o=Dt.get(n);if(!o){const t=Ot.get(n);if(!t)throw new Error(`Icon set not found: ${r.prefix}`);try{o={...await t(),prefix:n},Dt.set(n,o)}catch(l){throw i.Rm.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}const s=d(o,r.name);if(!s)throw new Error(`Icon not found: ${t}`);return s},"getRegisteredIconData"),Rt=(0,i.K2)(async t=>{try{return await It(t),!0}catch{return!1}},"isIconAvailable"),zt=(0,i.K2)(async(t,e,r)=>{let n;try{n=await It(t,e?.fallbackPrefix)}catch(o){i.Rm.error(o),n=Nt}const a=function(t,e){const r={...l,...t},n={...f,...e},i={left:r.left,top:r.top,width:r.width,height:r.height};let a=r.body;[r,n].forEach(t=>{const e=[],r=t.hFlip,n=t.vFlip;let o,s=t.rotate;switch(r?n?s+=2:(e.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),e.push("scale(-1 1)"),i.top=i.left=0):n&&(e.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),e.push("scale(1 -1)"),i.top=i.left=0),s<0&&(s-=4*Math.floor(s/4)),s%=4,s){case 1:o=i.height/2+i.top,e.unshift("rotate(90 "+o.toString()+" "+o.toString()+")");break;case 2:e.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:o=i.width/2+i.left,e.unshift("rotate(-90 "+o.toString()+" "+o.toString()+")")}s%2==1&&(i.left!==i.top&&(o=i.left,i.left=i.top,i.top=o),i.width!==i.height&&(o=i.width,i.width=i.height,i.height=o)),e.length&&(a=function(t,e,r){const n=function(t,e="defs"){let r="";const n=t.indexOf("<"+e);for(;n>=0;){const i=t.indexOf(">",n),a=t.indexOf(""+e);if(-1===i||-1===a)break;const o=t.indexOf(">",a);if(-1===o)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(o+1)}return{defs:r,content:t}}(t);return i=n.defs,a=e+n.content+r,i?""+i+" "+a:a;var i,a}(a,''," "))});const o=n.width,s=n.height,c=i.width,h=i.height;let u,d;null===o?(d=null===s?"1em":"auto"===s?h:s,u=y(d,c/h)):(u="auto"===o?c:o,d=null===s?y(u,h/c):"auto"===s?h:s);const p={},g=(t,e)=>{(t=>"unset"===t||"undefined"===t||"none"===t)(e)||(p[t]=e.toString())};g("width",u),g("height",d);const m=[i.left,i.top,c,h];return p.viewBox=m.join(" "),{attributes:p,viewBox:m,body:a}}(n,e);return function(t,e){let r=-1===t.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+" "}(function(t,e=b){const r=[];let n;for(;n=x.exec(t);)r.push(n[1]);if(!r.length)return t;const i="suffix"+(16777216*Math.random()|Date.now()).toString(16);return r.forEach(r=>{const n="function"==typeof e?e(r):e+(k++).toString(),a=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+n+i+"$3")}),t=t.replace(new RegExp(i,"g"),"")}(a.body),{...a.attributes,...r})},"getIconSVG");function Pt(t,{markdownAutoWrap:e}){const r=t.replace(/ /g,"\n").replace(/\n{2,}/g,"\n"),n=(0,Et.T)(r);return!1===e?n.replace(/ /g," "):n}function Kt(t,e={}){const r=Pt(t,e),n=$t.lexer(r),a=[[]];let o=0;function s(t,e="normal"){if("text"===t.type){t.text.split("\n").forEach((t,r)=>{0!==r&&(o++,a.push([])),t.split(" ").forEach(t=>{(t=t.replace(/'/g,"'"))&&a[o].push({content:t,type:e})})})}else"strong"===t.type||"em"===t.type?t.tokens.forEach(e=>{s(e,t.type)}):"html"===t.type&&a[o].push({content:t.text,type:"normal"})}return(0,i.K2)(s,"processNode"),n.forEach(t=>{"paragraph"===t.type?t.tokens?.forEach(t=>{s(t)}):"html"===t.type&&a[o].push({content:t.text,type:"normal"})}),a}function qt(t,{markdownAutoWrap:e}={}){const r=$t.lexer(t);function n(t){return"text"===t.type?!1===e?t.text.replace(/\n */g," ").replace(/ /g," "):t.text.replace(/\n */g," "):"strong"===t.type?`${t.tokens?.map(n).join("")} `:"em"===t.type?`${t.tokens?.map(n).join("")} `:"paragraph"===t.type?`${t.tokens?.map(n).join("")}
`:"space"===t.type?"":"html"===t.type?`${t.text}`:"escape"===t.type?t.text:`Unsupported markdown: ${t.type}`}return(0,i.K2)(n,"output"),r.map(n).join("")}function Wt(t){return Intl.Segmenter?[...(new Intl.Segmenter).segment(t)].map(t=>t.segment):[...t]}function Ht(t,e){return Ut(t,[],Wt(e.content),e.type)}function Ut(t,e,r,n){if(0===r.length)return[{content:e.join(""),type:n},{content:"",type:n}];const[i,...a]=r,o=[...e,i];return t([{content:o.join(""),type:n}])?Ut(t,o,a,n):(0===e.length&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function Gt(t,e){if(t.some(({content:t})=>t.includes("\n")))throw new Error("splitLineToFitWidth does not support newlines in the line");return Yt(t,e)}function Yt(t,e,r=[],n=[]){if(0===t.length)return n.length>0&&r.push(n),r.length>0?r:[];let i="";" "===t[0].content&&(i=" ",t.shift());const a=t.shift()??{content:" ",type:"normal"},o=[...n];if(""!==i&&o.push({content:i,type:"normal"}),o.push(a),e(o))return Yt(t,e,r,o);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){const[n,i]=Ht(e,a);r.push([n]),i.content&&t.unshift(i)}return Yt(t,e,r)}function Xt(t,e){e&&t.attr("style",e)}async function Vt(t,e,r,n,a=!1){const o=t.append("foreignObject");o.attr("width",10*r+"px"),o.attr("height",10*r+"px");const s=o.append("xhtml:div");let l=e.label;e.label&&(0,i.Wi)(e.label)&&(l=await(0,i.VJ)(e.label.replace(i.Y2.lineBreakRegex,"\n"),(0,i.D7)()));const c=e.isNode?"nodeLabel":"edgeLabel",h=s.append("span");h.html(l),Xt(h,e.labelStyle),h.attr("class",`${c} ${n}`),Xt(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),a&&s.attr("class","labelBkg");let u=s.node().getBoundingClientRect();return u.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),u=s.node().getBoundingClientRect()),o.node()}function Zt(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function Qt(t,e,r){const n=t.append("text"),i=Zt(n,1,e);ee(i,r);const a=i.node().getComputedTextLength();return n.remove(),a}function Jt(t,e,r){const n=t.append("text"),i=Zt(n,1,e);ee(i,[{content:r,type:"normal"}]);const a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function te(t,e,r,n=!1){const a=e.append("g"),o=a.insert("rect").attr("class","background").attr("style","stroke: none"),s=a.append("text").attr("y","-10.1");let l=0;for(const c of r){const e=(0,i.K2)(e=>Qt(a,1.1,e)<=t,"checkWidth"),r=e(c)?[c]:Gt(c,e);for(const t of r){ee(Zt(s,l,1.1),t),l++}}if(n){const t=s.node().getBBox(),e=2;return o.attr("x",t.x-e).attr("y",t.y-e).attr("width",t.width+2*e).attr("height",t.height+2*e),a.node()}return s.node()}function ee(t,e){t.text(""),e.forEach((e,r)=>{const n=t.append("tspan").attr("font-style","em"===e.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===e.type?"bold":"normal");0===r?n.text(e.content):n.text(" "+e.content)})}async function re(t){const e=[];t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(t,r,n)=>(e.push((async()=>{const e=`${r}:${n}`;return await Rt(e)?await zt(e,void 0,{class:"label-icon"}):` `})()),t));const r=await Promise.all(e);return t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>r.shift()??"")}(0,i.K2)(Pt,"preprocessMarkdown"),(0,i.K2)(Kt,"markdownToLines"),(0,i.K2)(qt,"markdownToHTML"),(0,i.K2)(Wt,"splitTextToChars"),(0,i.K2)(Ht,"splitWordToFitWidth"),(0,i.K2)(Ut,"splitWordToFitWidthRecursion"),(0,i.K2)(Gt,"splitLineToFitWidth"),(0,i.K2)(Yt,"splitLineToFitWidthRecursion"),(0,i.K2)(Xt,"applyStyle"),(0,i.K2)(Vt,"addHtmlSpan"),(0,i.K2)(Zt,"createTspan"),(0,i.K2)(Qt,"computeWidthOfText"),(0,i.K2)(Jt,"computeDimensionOfText"),(0,i.K2)(te,"createFormattedText"),(0,i.K2)(ee,"updateTextContentAndStyles"),(0,i.K2)(re,"replaceIconSubstring");var ne=(0,i.K2)(async(t,e="",{style:r="",isTitle:a=!1,classes:o="",useHtmlLabels:s=!0,isNode:l=!0,width:c=200,addSvgBackground:h=!1}={},u)=>{if(i.Rm.debug("XYZ createText",e,r,a,o,s,l,"addSvgBackground: ",h),s){const a=qt(e,u),s=await re((0,n.Sm)(a)),d=e.replace(/\\\\/g,"\\"),p={isNode:l,label:(0,i.Wi)(e)?d:s,labelStyle:r.replace("fill:","color:")};return await Vt(t,p,c,o,h)}{const n=te(c,t,Kt(e.replace(/ /g," ").replace(" "," "),u),!!e&&h);if(l){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));const t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,C.Ltv)(n).attr("style",t)}else{const t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");(0,C.Ltv)(n).select("rect").attr("style",t.replace(/background:/g,"fill:"));const e=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,C.Ltv)(n).select("text").attr("style",e)}return n}},"createText")},8598:(t,e,r)=>{"use strict";r.d(e,{A:()=>l});var n=r(3149),i=Object.create;const a=function(){function t(){}return function(e){if(!(0,n.A)(e))return{};if(i)return i(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();var o=r(5647),s=r(7271);const l=function(t){return"function"!=typeof t.constructor||(0,s.A)(t)?{}:a((0,o.A)(t))}},8744:(t,e,r)=>{"use strict";r.d(e,{A:()=>x});var n=r(9610);const i=r(1917).A["__core-js_shared__"];var a,o=(a=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+a:"";const s=function(t){return!!o&&o in t};var l=r(3149),c=r(1121),h=/^\[object .+?Constructor\]$/,u=Function.prototype,d=Object.prototype,p=u.toString,f=d.hasOwnProperty,g=RegExp("^"+p.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const m=function(t){return!(!(0,l.A)(t)||s(t))&&((0,n.A)(t)?g:h).test((0,c.A)(t))};const y=function(t,e){return null==t?void 0:t[e]};const x=function(t,e){var r=y(t,e);return m(r)?r:void 0}},8823:(t,e,r)=>{"use strict";r.d(e,{O:()=>n});var n=(0,r(1750).K2)(({flowchart:t})=>{const e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:e+r}},"getSubGraphTitleMargins")},8872:(t,e,r)=>{"use strict";r.d(e,{n:()=>n});var n={name:"mermaid",version:"11.9.0",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.0.4","@iconify/utils":"^2.1.33","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.11",dayjs:"^1.11.13",dompurify:"^3.2.5",katex:"^0.16.22",khroma:"^2.1.0","lodash-es":"^4.17.21",marked:"^16.0.0",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.2","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",canvas:"^3.1.0",chokidar:"3.6.0",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.0.2",jison:"^0.4.18","js-base64":"^3.7.7",jsdom:"^26.1.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.2",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.10","type-fest":"^4.35.0",typedoc:"^0.27.8","typedoc-plugin-markdown":"^4.4.2",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.0.2","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}}},9008:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});const n=function(t){return t}},9026:(t,e,r)=>{"use strict";r.d(e,{H:()=>rr,r:()=>er});var n=r(1750);function i(t){return null==t}function a(t){return"object"==typeof t&&null!==t}function o(t){return Array.isArray(t)?t:i(t)?[]:[t]}function s(t,e){var r,n,i,a;if(e)for(r=0,n=(a=Object.keys(e)).length;rs&&(e=n-s+(a=" ... ").length),r-n>s&&(r=n+s-(o=" ...").length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+o,pos:n-e+a.length}}function g(t,e){return h.repeat(" ",e-t.length)+t}function m(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var r,n=/\r?\n|\r|\0/g,i=[0],a=[],o=-1;r=n.exec(t.buffer);)a.push(r.index),i.push(r.index+r[0].length),t.position<=r.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,l,c="",u=Math.min(t.line+e.linesAfter,a.length).toString().length,d=e.maxLength-(e.indent+u+3);for(s=1;s<=e.linesBefore&&!(o-s<0);s++)l=f(t.buffer,i[o-s],a[o-s],t.position-(i[o]-i[o-s]),d),c=h.repeat(" ",e.indent)+g((t.line-s+1).toString(),u)+" | "+l.str+"\n"+c;for(l=f(t.buffer,i[o],a[o],t.position,d),c+=h.repeat(" ",e.indent)+g((t.line+1).toString(),u)+" | "+l.str+"\n",c+=h.repeat("-",e.indent+u+3+l.pos)+"^\n",s=1;s<=e.linesAfter&&!(o+s>=a.length);s++)l=f(t.buffer,i[o+s],a[o+s],t.position-(i[o]-i[o+s]),d),c+=h.repeat(" ",e.indent)+g((t.line+s+1).toString(),u)+" | "+l.str+"\n";return c.replace(/\n$/,"")}(0,n.K2)(f,"getLine"),(0,n.K2)(g,"padStart"),(0,n.K2)(m,"makeSnippet");var y=m,x=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],b=["scalar","sequence","mapping"];function k(t){var e={};return null!==t&&Object.keys(t).forEach(function(r){t[r].forEach(function(t){e[String(t)]=r})}),e}function C(t,e){if(e=e||{},Object.keys(e).forEach(function(e){if(-1===x.indexOf(e))throw new p('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=k(e.styleAliases||null),-1===b.indexOf(this.kind))throw new p('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}(0,n.K2)(k,"compileStyleAliases"),(0,n.K2)(C,"Type$1");var w=C;function v(t,e){var r=[];return t[e].forEach(function(t){var e=r.length;r.forEach(function(r,n){r.tag===t.tag&&r.kind===t.kind&&r.multi===t.multi&&(e=n)}),r[e]=t}),r}function _(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(r.multi[t.kind].push(t),r.multi.fallback.push(t)):r[t.kind][t.tag]=r.fallback[t.tag]=t}for((0,n.K2)(i,"collectType"),t=0,e=arguments.length;t=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:(0,n.K2)(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:(0,n.K2)(function(t){return t.toString(10)},"decimal"),hexadecimal:(0,n.K2)(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),K=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function q(t){return null!==t&&!(!K.test(t)||"_"===t[t.length-1])}function W(t){var e,r;return r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:r*parseFloat(e,10)}(0,n.K2)(q,"resolveYamlFloat"),(0,n.K2)(W,"constructYamlFloat");var H=/^[-+]?[0-9]+e/;function U(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(h.isNegativeZero(t))return"-0.0";return r=t.toString(10),H.test(r)?r.replace("e",".e"):r}function G(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||h.isNegativeZero(t))}(0,n.K2)(U,"representYamlFloat"),(0,n.K2)(G,"isFloat");var Y=new w("tag:yaml.org,2002:float",{kind:"scalar",resolve:q,construct:W,predicate:G,represent:U,defaultStyle:"lowercase"}),X=A.extend({implicit:[L,N,P,Y]}),V=X,Z=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Q=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function J(t){return null!==t&&(null!==Z.exec(t)||null!==Q.exec(t))}function tt(t){var e,r,n,i,a,o,s,l,c=0,h=null;if(null===(e=Z.exec(t))&&(e=Q.exec(t)),null===e)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],o=+e[5],s=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(h=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(h=-h)),l=new Date(Date.UTC(r,n,i,a,o,s,c)),h&&l.setTime(l.getTime()-h),l}function et(t){return t.toISOString()}(0,n.K2)(J,"resolveYamlTimestamp"),(0,n.K2)(tt,"constructYamlTimestamp"),(0,n.K2)(et,"representYamlTimestamp");var rt=new w("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:J,construct:tt,instanceOf:Date,represent:et});function nt(t){return"<<"===t||null===t}(0,n.K2)(nt,"resolveYamlMerge");var it=new w("tag:yaml.org,2002:merge",{kind:"scalar",resolve:nt}),at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function ot(t){if(null===t)return!1;var e,r,n=0,i=t.length,a=at;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8==0}function st(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=at,o=0,s=[];for(e=0;e>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|a.indexOf(n.charAt(e));return 0===(r=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===r?(s.push(o>>10&255),s.push(o>>2&255)):12===r&&s.push(o>>4&255),new Uint8Array(s)}function lt(t){var e,r,n="",i=0,a=t.length,o=at;for(e=0;e>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[63&i]),i=(i<<8)+t[e];return 0===(r=a%3)?(n+=o[i>>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[63&i]):2===r?(n+=o[i>>10&63],n+=o[i>>4&63],n+=o[i<<2&63],n+=o[64]):1===r&&(n+=o[i>>2&63],n+=o[i<<4&63],n+=o[64],n+=o[64]),n}function ct(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}(0,n.K2)(ot,"resolveYamlBinary"),(0,n.K2)(st,"constructYamlBinary"),(0,n.K2)(lt,"representYamlBinary"),(0,n.K2)(ct,"isBinary");var ht=new w("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ot,construct:st,predicate:ct,represent:lt}),ut=Object.prototype.hasOwnProperty,dt=Object.prototype.toString;function pt(t){if(null===t)return!0;var e,r,n,i,a,o=[],s=t;for(e=0,r=s.length;e>10),56320+(t-65536&1023))}(0,n.K2)(Ft,"_class"),(0,n.K2)($t,"is_EOL"),(0,n.K2)(Et,"is_WHITE_SPACE"),(0,n.K2)(Nt,"is_WS_OR_EOL"),(0,n.K2)(Dt,"is_FLOW_INDICATOR"),(0,n.K2)(Ot,"fromHexCode"),(0,n.K2)(jt,"escapedHexLen"),(0,n.K2)(It,"fromDecimalCode"),(0,n.K2)(Rt,"simpleEscapeSequence"),(0,n.K2)(zt,"charFromCodepoint");var Pt,Kt=new Array(256),qt=new Array(256);for(Pt=0;Pt<256;Pt++)Kt[Pt]=Rt(Pt)?1:0,qt[Pt]=Rt(Pt);function Wt(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||_t,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Ht(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=y(r),new p(e,r)}function Ut(t,e){throw Ht(t,e)}function Gt(t,e){t.onWarning&&t.onWarning.call(null,Ht(t,e))}(0,n.K2)(Wt,"State$1"),(0,n.K2)(Ht,"generateError"),(0,n.K2)(Ut,"throwError"),(0,n.K2)(Gt,"throwWarning");var Yt={YAML:(0,n.K2)(function(t,e,r){var n,i,a;null!==t.version&&Ut(t,"duplication of %YAML directive"),1!==r.length&&Ut(t,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&Ut(t,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),a=parseInt(n[2],10),1!==i&&Ut(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,1!==a&&2!==a&&Gt(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:(0,n.K2)(function(t,e,r){var n,i;2!==r.length&&Ut(t,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],Bt.test(n)||Ut(t,"ill-formed tag handle (first argument) of the TAG directive"),St.call(t.tagMap,n)&&Ut(t,'there is a previously declared suffix for "'+n+'" tag handle'),Lt.test(i)||Ut(t,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(a){Ut(t,"tag prefix is malformed: "+i)}t.tagMap[n]=i},"handleTagDirective")};function Xt(t,e,r,n){var i,a,o,s;if(e1&&(t.result+=h.repeat("\n",e-1))}function re(t,e,r){var n,i,a,o,s,l,c,h,u=t.kind,d=t.result;if(Nt(h=t.input.charCodeAt(t.position))||Dt(h)||35===h||38===h||42===h||33===h||124===h||62===h||39===h||34===h||37===h||64===h||96===h)return!1;if((63===h||45===h)&&(Nt(n=t.input.charCodeAt(t.position+1))||r&&Dt(n)))return!1;for(t.kind="scalar",t.result="",i=a=t.position,o=!1;0!==h;){if(58===h){if(Nt(n=t.input.charCodeAt(t.position+1))||r&&Dt(n))break}else if(35===h){if(Nt(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&te(t)||r&&Dt(h))break;if($t(h)){if(s=t.line,l=t.lineStart,c=t.lineIndent,Jt(t,!1,-1),t.lineIndent>=e){o=!0,h=t.input.charCodeAt(t.position);continue}t.position=a,t.line=s,t.lineStart=l,t.lineIndent=c;break}}o&&(Xt(t,i,a,!1),ee(t,t.line-s),i=a=t.position,o=!1),Et(h)||(a=t.position+1),h=t.input.charCodeAt(++t.position)}return Xt(t,i,a,!1),!!t.result||(t.kind=u,t.result=d,!1)}function ne(t,e){var r,n,i;if(39!==(r=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;0!==(r=t.input.charCodeAt(t.position));)if(39===r){if(Xt(t,n,t.position,!0),39!==(r=t.input.charCodeAt(++t.position)))return!0;n=t.position,t.position++,i=t.position}else $t(r)?(Xt(t,n,i,!0),ee(t,Jt(t,!1,e)),n=i=t.position):t.position===t.lineStart&&te(t)?Ut(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Ut(t,"unexpected end of the stream within a single quoted scalar")}function ie(t,e){var r,n,i,a,o,s;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return Xt(t,r,t.position,!0),t.position++,!0;if(92===s){if(Xt(t,r,t.position,!0),$t(s=t.input.charCodeAt(++t.position)))Jt(t,!1,e);else if(s<256&&Kt[s])t.result+=qt[s],t.position++;else if((o=jt(s))>0){for(i=o,a=0;i>0;i--)(o=Ot(s=t.input.charCodeAt(++t.position)))>=0?a=(a<<4)+o:Ut(t,"expected hexadecimal character");t.result+=zt(a),t.position++}else Ut(t,"unknown escape sequence");r=n=t.position}else $t(s)?(Xt(t,r,n,!0),ee(t,Jt(t,!1,e)),r=n=t.position):t.position===t.lineStart&&te(t)?Ut(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}Ut(t,"unexpected end of the stream within a double quoted scalar")}function ae(t,e){var r,n,i,a,o,s,l,c,h,u,d,p,f=!0,g=t.tag,m=t.anchor,y=Object.create(null);if(91===(p=t.input.charCodeAt(t.position)))o=93,c=!1,a=[];else{if(123!==p)return!1;o=125,c=!0,a={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),p=t.input.charCodeAt(++t.position);0!==p;){if(Jt(t,!0,e),(p=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=g,t.anchor=m,t.kind=c?"mapping":"sequence",t.result=a,!0;f?44===p&&Ut(t,"expected the node content, but found ','"):Ut(t,"missed comma between flow collection entries"),d=null,s=l=!1,63===p&&Nt(t.input.charCodeAt(t.position+1))&&(s=l=!0,t.position++,Jt(t,!0,e)),r=t.line,n=t.lineStart,i=t.position,de(t,e,1,!1,!0),u=t.tag,h=t.result,Jt(t,!0,e),p=t.input.charCodeAt(t.position),!l&&t.line!==r||58!==p||(s=!0,p=t.input.charCodeAt(++t.position),Jt(t,!0,e),de(t,e,1,!1,!0),d=t.result),c?Zt(t,a,y,u,h,d,r,n,i):s?a.push(Zt(t,null,y,u,h,d,r,n,i)):a.push(h),Jt(t,!0,e),44===(p=t.input.charCodeAt(t.position))?(f=!0,p=t.input.charCodeAt(++t.position)):f=!1}Ut(t,"unexpected end of the stream within a flow collection")}function oe(t,e){var r,n,i,a,o=1,s=!1,l=!1,c=e,u=0,d=!1;if(124===(a=t.input.charCodeAt(t.position)))n=!1;else{if(62!==a)return!1;n=!0}for(t.kind="scalar",t.result="";0!==a;)if(43===(a=t.input.charCodeAt(++t.position))||45===a)1===o?o=43===a?3:2:Ut(t,"repeat of a chomping mode identifier");else{if(!((i=It(a))>=0))break;0===i?Ut(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Ut(t,"repeat of an indentation width identifier"):(c=e+i-1,l=!0)}if(Et(a)){do{a=t.input.charCodeAt(++t.position)}while(Et(a));if(35===a)do{a=t.input.charCodeAt(++t.position)}while(!$t(a)&&0!==a)}for(;0!==a;){for(Qt(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!l||t.lineIndentc&&(c=t.lineIndent),$t(a))u++;else{if(t.lineIndente)&&0!==n)Ut(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(y&&(o=t.line,s=t.lineStart,l=t.position),de(t,e,4,!0,i)&&(y?g=t.result:m=t.result),y||(Zt(t,d,p,f,g,m,o,s,l),f=g=m=null),Jt(t,!0,-1),c=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&0!==c)Ut(t,"bad indentation of a mapping entry");else if(t.lineIndente?f=1:t.lineIndent===e?f=0:t.lineIndente?f=1:t.lineIndent===e?f=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),l=0,c=t.implicitTypes.length;l"),null!==t.result&&u.kind!==t.kind&&Ut(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):Ut(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||m}function pe(t){var e,r,n,i,a=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(i=t.input.charCodeAt(t.position))&&(Jt(t,!0,-1),i=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==i));){for(o=!0,i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!Nt(i);)i=t.input.charCodeAt(++t.position);for(n=[],(r=t.input.slice(e,t.position)).length<1&&Ut(t,"directive name must not be less than one character in length");0!==i;){for(;Et(i);)i=t.input.charCodeAt(++t.position);if(35===i){do{i=t.input.charCodeAt(++t.position)}while(0!==i&&!$t(i));break}if($t(i))break;for(e=t.position;0!==i&&!Nt(i);)i=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==i&&Qt(t),St.call(Yt,r)?Yt[r](t,r,n):Gt(t,'unknown document directive "'+r+'"')}Jt(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,Jt(t,!0,-1)):o&&Ut(t,"directives end mark is expected"),de(t,t.lineIndent-1,4,!1,!0),Jt(t,!0,-1),t.checkLineBreaks&&Tt.test(t.input.slice(a,t.position))&&Gt(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&te(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,Jt(t,!0,-1)):t.position=55296&&n<=56319&&e+1=56320&&r<=57343?1024*(n-55296)+r-56320+65536:n}function je(t){return/^\n* /.test(t)}(0,n.K2)(Ae,"State"),(0,n.K2)(Te,"indentString"),(0,n.K2)(Me,"generateNextLine"),(0,n.K2)(Be,"testImplicitResolving"),(0,n.K2)(Le,"isWhitespace"),(0,n.K2)(Fe,"isPrintable"),(0,n.K2)($e,"isNsCharOrWhitespace"),(0,n.K2)(Ee,"isPlainSafe"),(0,n.K2)(Ne,"isPlainSafeFirst"),(0,n.K2)(De,"isPlainSafeLast"),(0,n.K2)(Oe,"codePointAt"),(0,n.K2)(je,"needIndentIndicator");function Ie(t,e,r,n,i,a,o,s){var l,c=0,h=null,u=!1,d=!1,p=-1!==n,f=-1,g=Ne(Oe(t,0))&&De(Oe(t,t.length-1));if(e||o)for(l=0;l=65536?l+=2:l++){if(!Fe(c=Oe(t,l)))return 5;g=g&&Ee(c,h,s),h=c}else{for(l=0;l=65536?l+=2:l++){if(10===(c=Oe(t,l)))u=!0,p&&(d=d||l-f-1>n&&" "!==t[f+1],f=l);else if(!Fe(c))return 5;g=g&&Ee(c,h,s),h=c}d=d||p&&l-f-1>n&&" "!==t[f+1]}return u||d?r>9&&je(t)?5:o?2===a?5:2:d?4:3:!g||o||i(t)?2===a?5:2:1}function Re(t,e,r,i,a){t.dump=function(){if(0===e.length)return 2===t.quotingType?'""':"''";if(!t.noCompatMode&&(-1!==we.indexOf(e)||ve.test(e)))return 2===t.quotingType?'"'+e+'"':"'"+e+"'";var o=t.indent*Math.max(1,r),s=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),l=i||t.flowLevel>-1&&r>=t.flowLevel;function c(e){return Be(t,e)}switch((0,n.K2)(c,"testAmbiguity"),Ie(e,l,t.indent,s,c,t.quotingType,t.forceQuotes&&!i,a)){case 1:return e;case 2:return"'"+e.replace(/'/g,"''")+"'";case 3:return"|"+ze(e,t.indent)+Pe(Te(e,o));case 4:return">"+ze(e,t.indent)+Pe(Te(Ke(e,s),o));case 5:return'"'+We(e)+'"';default:throw new p("impossible error: invalid scalar style")}}()}function ze(t,e){var r=je(t)?String(e):"",n="\n"===t[t.length-1];return r+(n&&("\n"===t[t.length-2]||"\n"===t)?"+":n?"":"-")+"\n"}function Pe(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function Ke(t,e){for(var r,n,i,a=/(\n+)([^\n]*)/g,o=(r=-1!==(r=t.indexOf("\n"))?r:t.length,a.lastIndex=r,qe(t.slice(0,r),e)),s="\n"===t[0]||" "===t[0];i=a.exec(t);){var l=i[1],c=i[2];n=" "===c[0],o+=l+(s||n||""===c?"":"\n")+qe(c,e),s=n}return o}function qe(t,e){if(""===t||" "===t[0])return t;for(var r,n,i=/ [^ ]/g,a=0,o=0,s=0,l="";r=i.exec(t);)(s=r.index)-a>e&&(n=o>a?o:s,l+="\n"+t.slice(a,n),a=n+1),o=s;return l+="\n",t.length-a>e&&o>a?l+=t.slice(a,o)+"\n"+t.slice(o+1):l+=t.slice(a),l.slice(1)}function We(t){for(var e,r="",n=0,i=0;i=65536?i+=2:i++)n=Oe(t,i),!(e=Ce[n])&&Fe(n)?(r+=t[i],n>=65536&&(r+=t[i+1])):r+=e||Se(n);return r}function He(t,e,r){var n,i,a,o="",s=t.tag;for(n=0,i=r.length;n1024&&(s+="? "),s+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Ve(t,e,o,!1,!1)&&(l+=s+=t.dump));t.tag=c,t.dump="{"+l+"}"}function Ye(t,e,r,n){var i,a,o,s,l,c,h="",u=t.tag,d=Object.keys(r);if(!0===t.sortKeys)d.sort();else if("function"==typeof t.sortKeys)d.sort(t.sortKeys);else if(t.sortKeys)throw new p("sortKeys must be a boolean or a function");for(i=0,a=d.length;i1024)&&(t.dump&&10===t.dump.charCodeAt(0)?c+="?":c+="? "),c+=t.dump,l&&(c+=Me(t,e)),Ve(t,e+1,s,!0,l)&&(t.dump&&10===t.dump.charCodeAt(0)?c+=":":c+=": ",h+=c+=t.dump));t.tag=u,t.dump=h||"{}"}function Xe(t,e,r){var n,i,a,o,s,l;for(a=0,o=(i=r?t.explicitTypes:t.implicitTypes).length;a tag resolver accepts not "'+l+'" style');n=s.represent[l](e,l)}t.dump=n}return!0}return!1}function Ve(t,e,r,n,i,a,o){t.tag=null,t.dump=r,Xe(t,r,!1)||Xe(t,r,!0);var s,l=xe.call(t.dump),c=n;n&&(n=t.flowLevel<0||t.flowLevel>e);var h,u,d="[object Object]"===l||"[object Array]"===l;if(d&&(u=-1!==(h=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||u||2!==t.indent&&e>0)&&(i=!1),u&&t.usedDuplicates[h])t.dump="*ref_"+h;else{if(d&&u&&!t.usedDuplicates[h]&&(t.usedDuplicates[h]=!0),"[object Object]"===l)n&&0!==Object.keys(t.dump).length?(Ye(t,e,t.dump,i),u&&(t.dump="&ref_"+h+t.dump)):(Ge(t,e,t.dump),u&&(t.dump="&ref_"+h+" "+t.dump));else if("[object Array]"===l)n&&0!==t.dump.length?(t.noArrayIndent&&!o&&e>0?Ue(t,e-1,t.dump,i):Ue(t,e,t.dump,i),u&&(t.dump="&ref_"+h+t.dump)):(He(t,e,t.dump),u&&(t.dump="&ref_"+h+" "+t.dump));else{if("[object String]"!==l){if("[object Undefined]"===l)return!1;if(t.skipInvalid)return!1;throw new p("unacceptable kind of an object to dump "+l)}"?"!==t.tag&&Re(t,t.dump,e,a,c)}null!==t.tag&&"?"!==t.tag&&(s=encodeURI("!"===t.tag[0]?t.tag.slice(1):t.tag).replace(/!/g,"%21"),s="!"===t.tag[0]?"!"+s:"tag:yaml.org,2002:"===s.slice(0,18)?"!!"+s.slice(18):"!<"+s+">",t.dump=s+" "+t.dump)}return!0}function Ze(t,e){var r,n,i=[],a=[];for(Qe(t,i,a),r=0,n=a.length;r{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,e.urlSchemeRegex=/^.+(:|:)/gim,e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,e.relativeFirstCharacters=[".","/"],e.BLANK_URL="about:blank"},9142:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});const n=function(t){return function(){return t}}},9418:(t,e,r)=>{"use strict";r.d(e,{A:()=>st});const{entries:n,setPrototypeOf:i,isFrozen:a,getPrototypeOf:o,getOwnPropertyDescriptor:s}=Object;let{freeze:l,seal:c,create:h}=Object,{apply:u,construct:d}="undefined"!=typeof Reflect&&Reflect;l||(l=function(t){return t}),c||(c=function(t){return t}),u||(u=function(t,e,r){return t.apply(e,r)}),d||(d=function(t,e){return new t(...e)});const p=M(Array.prototype.forEach),f=M(Array.prototype.lastIndexOf),g=M(Array.prototype.pop),m=M(Array.prototype.push),y=M(Array.prototype.splice),x=M(String.prototype.toLowerCase),b=M(String.prototype.toString),k=M(String.prototype.match),C=M(String.prototype.replace),w=M(String.prototype.indexOf),v=M(String.prototype.trim),_=M(Object.prototype.hasOwnProperty),S=M(RegExp.prototype.test),A=(T=TypeError,function(){for(var t=arguments.length,e=new Array(t),r=0;r1?r-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:x;i&&i(t,null);let n=e.length;for(;n--;){let i=e[n];if("string"==typeof i){const t=r(i);t!==i&&(a(e)||(e[n]=t),i=t)}t[i]=!0}return t}function L(t){for(let e=0;e/gm),U=c(/\$\{[\w\W]*/gm),G=c(/^data-[\-\w.\u00B7-\uFFFF]+$/),Y=c(/^aria-[\-\w]+$/),X=c(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=c(/^(?:\w+script|data):/i),Z=c(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Q=c(/^html$/i),J=c(/^[a-z][.\w]*(-[.\w]+)+$/i);var tt=Object.freeze({__proto__:null,ARIA_ATTR:Y,ATTR_WHITESPACE:Z,CUSTOM_ELEMENT:J,DATA_ATTR:G,DOCTYPE_NAME:Q,ERB_EXPR:H,IS_ALLOWED_URI:X,IS_SCRIPT_OR_DATA:V,MUSTACHE_EXPR:W,TMPLIT_EXPR:U});const et=1,rt=3,nt=7,it=8,at=9,ot=function(){return"undefined"==typeof window?null:window};var st=function t(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ot();const r=e=>t(e);if(r.version="3.2.6",r.removed=[],!e||!e.document||e.document.nodeType!==at||!e.Element)return r.isSupported=!1,r;let{document:i}=e;const a=i,o=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:c,Node:u,Element:d,NodeFilter:T,NamedNodeMap:M=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:L,DOMParser:W,trustedTypes:H}=e,U=d.prototype,G=$(U,"cloneNode"),Y=$(U,"remove"),V=$(U,"nextSibling"),Z=$(U,"childNodes"),J=$(U,"parentNode");if("function"==typeof c){const t=i.createElement("template");t.content&&t.content.ownerDocument&&(i=t.content.ownerDocument)}let st,lt="";const{implementation:ct,createNodeIterator:ht,createDocumentFragment:ut,getElementsByTagName:dt}=i,{importNode:pt}=a;let ft={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};r.isSupported="function"==typeof n&&"function"==typeof J&&ct&&void 0!==ct.createHTMLDocument;const{MUSTACHE_EXPR:gt,ERB_EXPR:mt,TMPLIT_EXPR:yt,DATA_ATTR:xt,ARIA_ATTR:bt,IS_SCRIPT_OR_DATA:kt,ATTR_WHITESPACE:Ct,CUSTOM_ELEMENT:wt}=tt;let{IS_ALLOWED_URI:vt}=tt,_t=null;const St=B({},[...E,...N,...D,...j,...R]);let At=null;const Tt=B({},[...z,...P,...K,...q]);let Mt=Object.seal(h(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Bt=null,Lt=null,Ft=!0,$t=!0,Et=!1,Nt=!0,Dt=!1,Ot=!0,jt=!1,It=!1,Rt=!1,zt=!1,Pt=!1,Kt=!1,qt=!0,Wt=!1,Ht=!0,Ut=!1,Gt={},Yt=null;const Xt=B({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Vt=null;const Zt=B({},["audio","video","img","source","image","track"]);let Qt=null;const Jt=B({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),te="http://www.w3.org/1998/Math/MathML",ee="http://www.w3.org/2000/svg",re="http://www.w3.org/1999/xhtml";let ne=re,ie=!1,ae=null;const oe=B({},[te,ee,re],b);let se=B({},["mi","mo","mn","ms","mtext"]),le=B({},["annotation-xml"]);const ce=B({},["title","style","font","a","script"]);let he=null;const ue=["application/xhtml+xml","text/html"];let de=null,pe=null;const fe=i.createElement("form"),ge=function(t){return t instanceof RegExp||t instanceof Function},me=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!pe||pe!==t){if(t&&"object"==typeof t||(t={}),t=F(t),he=-1===ue.indexOf(t.PARSER_MEDIA_TYPE)?"text/html":t.PARSER_MEDIA_TYPE,de="application/xhtml+xml"===he?b:x,_t=_(t,"ALLOWED_TAGS")?B({},t.ALLOWED_TAGS,de):St,At=_(t,"ALLOWED_ATTR")?B({},t.ALLOWED_ATTR,de):Tt,ae=_(t,"ALLOWED_NAMESPACES")?B({},t.ALLOWED_NAMESPACES,b):oe,Qt=_(t,"ADD_URI_SAFE_ATTR")?B(F(Jt),t.ADD_URI_SAFE_ATTR,de):Jt,Vt=_(t,"ADD_DATA_URI_TAGS")?B(F(Zt),t.ADD_DATA_URI_TAGS,de):Zt,Yt=_(t,"FORBID_CONTENTS")?B({},t.FORBID_CONTENTS,de):Xt,Bt=_(t,"FORBID_TAGS")?B({},t.FORBID_TAGS,de):F({}),Lt=_(t,"FORBID_ATTR")?B({},t.FORBID_ATTR,de):F({}),Gt=!!_(t,"USE_PROFILES")&&t.USE_PROFILES,Ft=!1!==t.ALLOW_ARIA_ATTR,$t=!1!==t.ALLOW_DATA_ATTR,Et=t.ALLOW_UNKNOWN_PROTOCOLS||!1,Nt=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Dt=t.SAFE_FOR_TEMPLATES||!1,Ot=!1!==t.SAFE_FOR_XML,jt=t.WHOLE_DOCUMENT||!1,zt=t.RETURN_DOM||!1,Pt=t.RETURN_DOM_FRAGMENT||!1,Kt=t.RETURN_TRUSTED_TYPE||!1,Rt=t.FORCE_BODY||!1,qt=!1!==t.SANITIZE_DOM,Wt=t.SANITIZE_NAMED_PROPS||!1,Ht=!1!==t.KEEP_CONTENT,Ut=t.IN_PLACE||!1,vt=t.ALLOWED_URI_REGEXP||X,ne=t.NAMESPACE||re,se=t.MATHML_TEXT_INTEGRATION_POINTS||se,le=t.HTML_INTEGRATION_POINTS||le,Mt=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&ge(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Mt.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&ge(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Mt.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Mt.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Dt&&($t=!1),Pt&&(zt=!0),Gt&&(_t=B({},R),At=[],!0===Gt.html&&(B(_t,E),B(At,z)),!0===Gt.svg&&(B(_t,N),B(At,P),B(At,q)),!0===Gt.svgFilters&&(B(_t,D),B(At,P),B(At,q)),!0===Gt.mathMl&&(B(_t,j),B(At,K),B(At,q))),t.ADD_TAGS&&(_t===St&&(_t=F(_t)),B(_t,t.ADD_TAGS,de)),t.ADD_ATTR&&(At===Tt&&(At=F(At)),B(At,t.ADD_ATTR,de)),t.ADD_URI_SAFE_ATTR&&B(Qt,t.ADD_URI_SAFE_ATTR,de),t.FORBID_CONTENTS&&(Yt===Xt&&(Yt=F(Yt)),B(Yt,t.FORBID_CONTENTS,de)),Ht&&(_t["#text"]=!0),jt&&B(_t,["html","head","body"]),_t.table&&(B(_t,["tbody"]),delete Bt.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');st=t.TRUSTED_TYPES_POLICY,lt=st.createHTML("")}else void 0===st&&(st=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let r=null;const n="data-tt-policy-suffix";e&&e.hasAttribute(n)&&(r=e.getAttribute(n));const i="dompurify"+(r?"#"+r:"");try{return t.createPolicy(i,{createHTML:t=>t,createScriptURL:t=>t})}catch(a){return console.warn("TrustedTypes policy "+i+" could not be created."),null}}(H,o)),null!==st&&"string"==typeof lt&&(lt=st.createHTML(""));l&&l(t),pe=t}},ye=B({},[...N,...D,...O]),xe=B({},[...j,...I]),be=function(t){m(r.removed,{element:t});try{J(t).removeChild(t)}catch(e){Y(t)}},ke=function(t,e){try{m(r.removed,{attribute:e.getAttributeNode(t),from:e})}catch(n){m(r.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t)if(zt||Pt)try{be(e)}catch(n){}else try{e.setAttribute(t,"")}catch(n){}},Ce=function(t){let e=null,r=null;if(Rt)t=" "+t;else{const e=k(t,/^[\r\n\t ]+/);r=e&&e[0]}"application/xhtml+xml"===he&&ne===re&&(t=''+t+"");const n=st?st.createHTML(t):t;if(ne===re)try{e=(new W).parseFromString(n,he)}catch(o){}if(!e||!e.documentElement){e=ct.createDocument(ne,"template",null);try{e.documentElement.innerHTML=ie?lt:n}catch(o){}}const a=e.body||e.documentElement;return t&&r&&a.insertBefore(i.createTextNode(r),a.childNodes[0]||null),ne===re?dt.call(e,jt?"html":"body")[0]:jt?e.documentElement:a},we=function(t){return ht.call(t.ownerDocument||t,t,T.SHOW_ELEMENT|T.SHOW_COMMENT|T.SHOW_TEXT|T.SHOW_PROCESSING_INSTRUCTION|T.SHOW_CDATA_SECTION,null)},ve=function(t){return t instanceof L&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof M)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},_e=function(t){return"function"==typeof u&&t instanceof u};function Se(t,e,n){p(t,t=>{t.call(r,e,n,pe)})}const Ae=function(t){let e=null;if(Se(ft.beforeSanitizeElements,t,null),ve(t))return be(t),!0;const n=de(t.nodeName);if(Se(ft.uponSanitizeElement,t,{tagName:n,allowedTags:_t}),Ot&&t.hasChildNodes()&&!_e(t.firstElementChild)&&S(/<[/\w!]/g,t.innerHTML)&&S(/<[/\w!]/g,t.textContent))return be(t),!0;if(t.nodeType===nt)return be(t),!0;if(Ot&&t.nodeType===it&&S(/<[/\w]/g,t.data))return be(t),!0;if(!_t[n]||Bt[n]){if(!Bt[n]&&Me(n)){if(Mt.tagNameCheck instanceof RegExp&&S(Mt.tagNameCheck,n))return!1;if(Mt.tagNameCheck instanceof Function&&Mt.tagNameCheck(n))return!1}if(Ht&&!Yt[n]){const e=J(t)||t.parentNode,r=Z(t)||t.childNodes;if(r&&e){for(let n=r.length-1;n>=0;--n){const i=G(r[n],!0);i.__removalCount=(t.__removalCount||0)+1,e.insertBefore(i,V(t))}}}return be(t),!0}return t instanceof d&&!function(t){let e=J(t);e&&e.tagName||(e={namespaceURI:ne,tagName:"template"});const r=x(t.tagName),n=x(e.tagName);return!!ae[t.namespaceURI]&&(t.namespaceURI===ee?e.namespaceURI===re?"svg"===r:e.namespaceURI===te?"svg"===r&&("annotation-xml"===n||se[n]):Boolean(ye[r]):t.namespaceURI===te?e.namespaceURI===re?"math"===r:e.namespaceURI===ee?"math"===r&&le[n]:Boolean(xe[r]):t.namespaceURI===re?!(e.namespaceURI===ee&&!le[n])&&!(e.namespaceURI===te&&!se[n])&&!xe[r]&&(ce[r]||!ye[r]):!("application/xhtml+xml"!==he||!ae[t.namespaceURI]))}(t)?(be(t),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!S(/<\/no(script|embed|frames)/i,t.innerHTML)?(Dt&&t.nodeType===rt&&(e=t.textContent,p([gt,mt,yt],t=>{e=C(e,t," ")}),t.textContent!==e&&(m(r.removed,{element:t.cloneNode()}),t.textContent=e)),Se(ft.afterSanitizeElements,t,null),!1):(be(t),!0)},Te=function(t,e,r){if(qt&&("id"===e||"name"===e)&&(r in i||r in fe))return!1;if($t&&!Lt[e]&&S(xt,e));else if(Ft&&S(bt,e));else if(!At[e]||Lt[e]){if(!(Me(t)&&(Mt.tagNameCheck instanceof RegExp&&S(Mt.tagNameCheck,t)||Mt.tagNameCheck instanceof Function&&Mt.tagNameCheck(t))&&(Mt.attributeNameCheck instanceof RegExp&&S(Mt.attributeNameCheck,e)||Mt.attributeNameCheck instanceof Function&&Mt.attributeNameCheck(e))||"is"===e&&Mt.allowCustomizedBuiltInElements&&(Mt.tagNameCheck instanceof RegExp&&S(Mt.tagNameCheck,r)||Mt.tagNameCheck instanceof Function&&Mt.tagNameCheck(r))))return!1}else if(Qt[e]);else if(S(vt,C(r,Ct,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==w(r,"data:")||!Vt[t]){if(Et&&!S(kt,C(r,Ct,"")));else if(r)return!1}else;return!0},Me=function(t){return"annotation-xml"!==t&&k(t,wt)},Be=function(t){Se(ft.beforeSanitizeAttributes,t,null);const{attributes:e}=t;if(!e||ve(t))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:At,forceKeepAttr:void 0};let i=e.length;for(;i--;){const o=e[i],{name:s,namespaceURI:l,value:c}=o,h=de(s),u=c;let d="value"===s?u:v(u);if(n.attrName=h,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,Se(ft.uponSanitizeAttribute,t,n),d=n.attrValue,!Wt||"id"!==h&&"name"!==h||(ke(s,t),d="user-content-"+d),Ot&&S(/((--!?|])>)|<\/(style|title)/i,d)){ke(s,t);continue}if(n.forceKeepAttr)continue;if(!n.keepAttr){ke(s,t);continue}if(!Nt&&S(/\/>/i,d)){ke(s,t);continue}Dt&&p([gt,mt,yt],t=>{d=C(d,t," ")});const f=de(t.nodeName);if(Te(f,h,d)){if(st&&"object"==typeof H&&"function"==typeof H.getAttributeType)if(l);else switch(H.getAttributeType(f,h)){case"TrustedHTML":d=st.createHTML(d);break;case"TrustedScriptURL":d=st.createScriptURL(d)}if(d!==u)try{l?t.setAttributeNS(l,s,d):t.setAttribute(s,d),ve(t)?be(t):g(r.removed)}catch(a){ke(s,t)}}else ke(s,t)}Se(ft.afterSanitizeAttributes,t,null)},Le=function t(e){let r=null;const n=we(e);for(Se(ft.beforeSanitizeShadowDOM,e,null);r=n.nextNode();)Se(ft.uponSanitizeShadowNode,r,null),Ae(r),Be(r),r.content instanceof s&&t(r.content);Se(ft.afterSanitizeShadowDOM,e,null)};return r.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,i=null,o=null,l=null;if(ie=!t,ie&&(t="\x3c!--\x3e"),"string"!=typeof t&&!_e(t)){if("function"!=typeof t.toString)throw A("toString is not a function");if("string"!=typeof(t=t.toString()))throw A("dirty is not a string, aborting")}if(!r.isSupported)return t;if(It||me(e),r.removed=[],"string"==typeof t&&(Ut=!1),Ut){if(t.nodeName){const e=de(t.nodeName);if(!_t[e]||Bt[e])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof u)n=Ce("\x3c!----\x3e"),i=n.ownerDocument.importNode(t,!0),i.nodeType===et&&"BODY"===i.nodeName||"HTML"===i.nodeName?n=i:n.appendChild(i);else{if(!zt&&!Dt&&!jt&&-1===t.indexOf("<"))return st&&Kt?st.createHTML(t):t;if(n=Ce(t),!n)return zt?null:Kt?lt:""}n&&Rt&&be(n.firstChild);const c=we(Ut?t:n);for(;o=c.nextNode();)Ae(o),Be(o),o.content instanceof s&&Le(o.content);if(Ut)return t;if(zt){if(Pt)for(l=ut.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(At.shadowroot||At.shadowrootmode)&&(l=pt.call(a,l,!0)),l}let h=jt?n.outerHTML:n.innerHTML;return jt&&_t["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&S(Q,n.ownerDocument.doctype.name)&&(h="\n"+h),Dt&&p([gt,mt,yt],t=>{h=C(h,t," ")}),st&&Kt?st.createHTML(h):h},r.setConfig=function(){me(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),It=!0},r.clearConfig=function(){pe=null,It=!1},r.isValidAttribute=function(t,e,r){pe||me({});const n=de(t),i=de(e);return Te(n,i,r)},r.addHook=function(t,e){"function"==typeof e&&m(ft[t],e)},r.removeHook=function(t,e){if(void 0!==e){const r=f(ft[t],e);return-1===r?void 0:y(ft[t],r,1)[0]}return g(ft[t])},r.removeHooks=function(t){ft[t]=[]},r.removeAllHooks=function(){ft={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},r}()},9471:(t,e,r)=>{"use strict";r.d(e,{A:()=>v});const n=(0,r(8744).A)(Object,"create");const i=function(){this.__data__=n?n(null):{},this.size=0};const a=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var o=Object.prototype.hasOwnProperty;const s=function(t){var e=this.__data__;if(n){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(e,t)?e[t]:void 0};var l=Object.prototype.hasOwnProperty;const c=function(t){var e=this.__data__;return n?void 0!==e[t]:l.call(e,t)};const h=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?"__lodash_hash_undefined__":e,this};function u(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{"use strict";r.d(e,{A:()=>a});var n=r(8496),i=r(3149);const a=function(t){if(!(0,i.A)(t))return!1;var e=(0,n.A)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},9759:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});const n=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";r.d(e,{A:()=>v});var n=r(8744),i=r(1917);const a=(0,n.A)(i.A,"DataView");var o=r(8335);const s=(0,n.A)(i.A,"Promise");var l=r(9857);const c=(0,n.A)(i.A,"WeakMap");var h=r(8496),u=r(1121),d="[object Map]",p="[object Promise]",f="[object Set]",g="[object WeakMap]",m="[object DataView]",y=(0,u.A)(a),x=(0,u.A)(o.A),b=(0,u.A)(s),k=(0,u.A)(l.A),C=(0,u.A)(c),w=h.A;(a&&w(new a(new ArrayBuffer(1)))!=m||o.A&&w(new o.A)!=d||s&&w(s.resolve())!=p||l.A&&w(new l.A)!=f||c&&w(new c)!=g)&&(w=function(t){var e=(0,h.A)(t),r="[object Object]"==e?t.constructor:void 0,n=r?(0,u.A)(r):"";if(n)switch(n){case y:return m;case x:return d;case b:return p;case k:return f;case C:return g}return e});const v=w},9857:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var n=r(8744),i=r(1917);const a=(0,n.A)(i.A,"Set")},9893:(t,e,r)=>{"use strict";function n(t,e,r){if(t&&t.length){const[n,i]=e,a=Math.PI/180*r,o=Math.cos(a),s=Math.sin(a);for(const e of t){const[t,r]=e;e[0]=(t-n)*o-(r-i)*s+n,e[1]=(t-n)*s+(r-i)*o+i}}}function i(t,e){return t[0]===e[0]&&t[1]===e[1]}function a(t,e,r,a=1){const o=r,s=Math.max(e,.1),l=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,c=[0,0];if(o)for(const i of l)n(i,c,o);const h=function(t,e,r){const n=[];for(const h of t){const t=[...h];i(t[0],t[t.length-1])||t.push([t[0][0],t[0][1]]),t.length>2&&n.push(t)}const a=[];e=Math.max(e,.1);const o=[];for(const i of n)for(let t=0;tt.ymine.ymin?1:t.xe.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)),!o.length)return a;let s=[],l=o[0].ymin,c=0;for(;s.length||o.length;){if(o.length){let t=-1;for(let e=0;el);e++)t=e;o.splice(0,t+1).forEach(t=>{s.push({s:l,edge:t})})}if(s=s.filter(t=>!(t.edge.ymax<=l)),s.sort((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)),(1!==r||c%e==0)&&s.length>1)for(let t=0;t=s.length)break;const r=s[t].edge,n=s[e].edge;a.push([[Math.round(r.x),l],[Math.round(n.x),l]])}l+=r,s.forEach(t=>{t.edge.x=t.edge.x+r*t.edge.islope}),c++}return a}(l,s,a);if(o){for(const t of l)n(t,c,-o);!function(t,e,r){const i=[];t.forEach(t=>i.push(...t)),n(i,e,r)}(h,c,-o)}return h}function o(t,e){var r;const n=e.hachureAngle+90;let i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let o=1;return e.roughness>=1&&((null===(r=e.randomizer)||void 0===r?void 0:r.next())||Math.random())>.7&&(o=i),a(t,i,n,o||1)}r.d(e,{A:()=>it});class s{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){const r=o(t,e);return{type:"fillSketch",ops:this.renderLines(r,e)}}renderLines(t,e){const r=[];for(const n of t)r.push(...this.helper.doubleLineOps(n[0][0],n[0][1],n[1][0],n[1][1],e));return r}}function l(t){const e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}class c extends s{fillPolygons(t,e){let r=e.hachureGap;r<0&&(r=4*e.strokeWidth),r=Math.max(r,.1);const n=o(t,Object.assign({},e,{hachureGap:r})),i=Math.PI/180*e.hachureAngle,a=[],s=.5*r*Math.cos(i),c=.5*r*Math.sin(i);for(const[o,h]of n)l([o,h])&&a.push([[o[0]-s,o[1]+c],[...h]],[[o[0]+s,o[1]-c],[...h]]);return{type:"fillSketch",ops:this.renderLines(a,e)}}}class h extends s{fillPolygons(t,e){const r=this._fillPolygons(t,e),n=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),i=this._fillPolygons(t,n);return r.ops=r.ops.concat(i.ops),r}}class u{constructor(t){this.helper=t}fillPolygons(t,e){const r=o(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(r,e)}dotsOnLines(t,e){const r=[];let n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1);let i=e.fillWeight;i<0&&(i=e.strokeWidth/2);const a=n/4;for(const o of t){const t=l(o),s=t/n,c=Math.ceil(s)-1,h=t-c*n,u=(o[0][0]+o[1][0])/2-n/4,d=Math.min(o[0][1],o[1][1]);for(let o=0;o{const a=l(t),o=Math.floor(a/(r+n)),s=(a+n-o*(r+n))/2;let c=t[0],h=t[1];c[0]>h[0]&&(c=t[1],h=t[0]);const u=Math.atan((h[1]-c[1])/(h[0]-c[0]));for(let l=0;l{const i=l(t),a=Math.round(i/(2*e));let o=t[0],s=t[1];o[0]>s[0]&&(o=t[1],s=t[0]);const c=Math.atan((s[1]-o[1])/(s[0]-o[0]));for(let l=0;ln%2?t+r:t+e);a.push({key:"C",data:t}),e=t[4],r=t[5];break}case"Q":a.push({key:"Q",data:[...s]}),e=s[2],r=s[3];break;case"q":{const t=s.map((t,n)=>n%2?t+r:t+e);a.push({key:"Q",data:t}),e=t[2],r=t[3];break}case"A":a.push({key:"A",data:[...s]}),e=s[5],r=s[6];break;case"a":e+=s[5],r+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],e,r]});break;case"H":a.push({key:"H",data:[...s]}),e=s[0];break;case"h":e+=s[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...s]}),r=s[0];break;case"v":r+=s[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...s]}),e=s[2],r=s[3];break;case"s":{const t=s.map((t,n)=>n%2?t+r:t+e);a.push({key:"S",data:t}),e=t[2],r=t[3];break}case"T":a.push({key:"T",data:[...s]}),e=s[0],r=s[1];break;case"t":e+=s[0],r+=s[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function k(t){const e=[];let r="",n=0,i=0,a=0,o=0,s=0,l=0;for(const{key:c,data:h}of t){switch(c){case"M":e.push({key:"M",data:[...h]}),[n,i]=h,[a,o]=h;break;case"C":e.push({key:"C",data:[...h]}),n=h[4],i=h[5],s=h[2],l=h[3];break;case"L":e.push({key:"L",data:[...h]}),[n,i]=h;break;case"H":n=h[0],e.push({key:"L",data:[n,i]});break;case"V":i=h[0],e.push({key:"L",data:[n,i]});break;case"S":{let t=0,a=0;"C"===r||"S"===r?(t=n+(n-s),a=i+(i-l)):(t=n,a=i),e.push({key:"C",data:[t,a,...h]}),s=h[0],l=h[1],n=h[2],i=h[3];break}case"T":{const[t,a]=h;let o=0,c=0;"Q"===r||"T"===r?(o=n+(n-s),c=i+(i-l)):(o=n,c=i);const u=n+2*(o-n)/3,d=i+2*(c-i)/3,p=t+2*(o-t)/3,f=a+2*(c-a)/3;e.push({key:"C",data:[u,d,p,f,t,a]}),s=o,l=c,n=t,i=a;break}case"Q":{const[t,r,a,o]=h,c=n+2*(t-n)/3,u=i+2*(r-i)/3,d=a+2*(t-a)/3,p=o+2*(r-o)/3;e.push({key:"C",data:[c,u,d,p,a,o]}),s=t,l=r,n=a,i=o;break}case"A":{const t=Math.abs(h[0]),r=Math.abs(h[1]),a=h[2],o=h[3],s=h[4],l=h[5],c=h[6];0===t||0===r?(e.push({key:"C",data:[n,i,l,c,l,c]}),n=l,i=c):n===l&&i===c||(w(n,i,l,c,t,r,a,o,s).forEach(function(t){e.push({key:"C",data:t})}),n=l,i=c);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=o}r=c}return e}function C(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function w(t,e,r,n,i,a,o,s,l,c){const h=(u=o,Math.PI*u/180);var u;let d=[],p=0,f=0,g=0,m=0;if(c)[p,f,g,m]=c;else{[t,e]=C(t,e,-h),[r,n]=C(r,n,-h);const o=(t-r)/2,c=(e-n)/2;let u=o*o/(i*i)+c*c/(a*a);u>1&&(u=Math.sqrt(u),i*=u,a*=u);const d=i*i,y=a*a,x=d*y-d*c*c-y*o*o,b=d*c*c+y*o*o,k=(s===l?-1:1)*Math.sqrt(Math.abs(x/b));g=k*i*c/a+(t+r)/2,m=k*-a*o/i+(e+n)/2,p=Math.asin(parseFloat(((e-m)/a).toFixed(9))),f=Math.asin(parseFloat(((n-m)/a).toFixed(9))),tf&&(p-=2*Math.PI),!l&&f>p&&(f-=2*Math.PI)}let y=f-p;if(Math.abs(y)>120*Math.PI/180){const t=f,e=r,s=n;f=l&&f>p?p+120*Math.PI/180*1:p+120*Math.PI/180*-1,d=w(r=g+i*Math.cos(f),n=m+a*Math.sin(f),e,s,i,a,o,0,l,[f,t,g,m])}y=f-p;const x=Math.cos(p),b=Math.sin(p),k=Math.cos(f),v=Math.sin(f),_=Math.tan(y/4),S=4/3*i*_,A=4/3*a*_,T=[t,e],M=[t+S*b,e-A*x],B=[r+S*v,n-A*k],L=[r,n];if(M[0]=2*T[0]-M[0],M[1]=2*T[1]-M[1],c)return[M,B,L].concat(d);{d=[M,B,L].concat(d);const t=[];for(let e=0;e2){const i=[];for(let e=0;e2*Math.PI&&(p=0,f=2*Math.PI);const g=2*Math.PI/l.curveStepCount,m=Math.min(g/2,(f-p)/2),y=K(m,c,h,u,d,p,f,1,l);if(!l.disableMultiStroke){const t=K(m,c,h,u,d,p,f,1.5,l);y.push(...t)}return o&&(s?y.push(...j(c,h,c+u*Math.cos(p),h+d*Math.sin(p),l),...j(c,h,c+u*Math.cos(f),h+d*Math.sin(f),l)):y.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+u*Math.cos(p),h+d*Math.sin(p)]})),{type:"path",ops:y}}function L(t,e){const r=k(b(x(t))),n=[];let i=[0,0],a=[0,0];for(const{key:o,data:s}of r)switch(o){case"M":a=[s[0],s[1]],i=[s[0],s[1]];break;case"L":n.push(...j(a[0],a[1],s[0],s[1],e)),a=[s[0],s[1]];break;case"C":{const[t,r,i,o,l,c]=s;n.push(...q(t,r,i,o,l,c,a,e)),a=[l,c];break}case"Z":n.push(...j(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function F(t,e){const r=[];for(const n of t)if(n.length){const t=e.maxRandomnessOffset||0,i=n.length;if(i>2){r.push({op:"move",data:[n[0][0]+O(t,e),n[0][1]+O(t,e)]});for(let a=1;a500?.4:-.0016668*l+1.233334;let h=i.maxRandomnessOffset||0;h*h*100>s&&(h=l/10);const u=h/2,d=.2+.2*N(i);let p=i.bowing*i.maxRandomnessOffset*(n-e)/200,f=i.bowing*i.maxRandomnessOffset*(t-r)/200;p=O(p,i,c),f=O(f,i,c);const g=[],m=()=>O(u,i,c),y=()=>O(h,i,c),x=i.preserveVertices;return a&&(o?g.push({op:"move",data:[t+(x?0:m()),e+(x?0:m())]}):g.push({op:"move",data:[t+(x?0:O(h,i,c)),e+(x?0:O(h,i,c))]})),o?g.push({op:"bcurveTo",data:[p+t+(r-t)*d+m(),f+e+(n-e)*d+m(),p+t+2*(r-t)*d+m(),f+e+2*(n-e)*d+m(),r+(x?0:m()),n+(x?0:m())]}):g.push({op:"bcurveTo",data:[p+t+(r-t)*d+y(),f+e+(n-e)*d+y(),p+t+2*(r-t)*d+y(),f+e+2*(n-e)*d+y(),r+(x?0:y()),n+(x?0:y())]}),g}function R(t,e,r){if(!t.length)return[];const n=[];n.push([t[0][0]+O(e,r),t[0][1]+O(e,r)]),n.push([t[0][0]+O(e,r),t[0][1]+O(e,r)]);for(let i=1;i3){const a=[],o=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let e=1;e+21&&i.push(r)):i.push(r),i.push(t[e+3])}else{const n=.5,a=t[e+0],o=t[e+1],s=t[e+2],l=t[e+3],c=Y(a,o,n),h=Y(o,s,n),u=Y(s,l,n),d=Y(c,h,n),p=Y(h,u,n),f=Y(d,p,n);X([a,c,d,f],0,r,i),X([f,p,u,l],0,r,i)}var a,o;return i}function V(t,e){return Z(t,0,t.length,e)}function Z(t,e,r,n,i){const a=i||[],o=t[e],s=t[r-1];let l=0,c=1;for(let h=e+1;hl&&(l=e,c=h)}return Math.sqrt(l)>n?(Z(t,e,c+1,n,a),Z(t,c,r,n,a)):(a.length||a.push(o),a.push(s)),a}function Q(t,e=.15,r){const n=[],i=(t.length-1)/3;for(let a=0;a0?Z(n,0,n.length,r):n}const J="none";class tt{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,r){return{shape:t,sets:e||[],options:r||this.defaultOptions}}line(t,e,r,n,i){const a=this._o(i);return this._d("line",[_(t,e,r,n,a)],a)}rectangle(t,e,r,n,i){const a=this._o(i),o=[],s=function(t,e,r,n,i){return function(t,e){return S(t,!0,e)}([[t,e],[t+r,e],[t+r,e+n],[t,e+n]],i)}(t,e,r,n,a);if(a.fill){const i=[[t,e],[t+r,e],[t+r,e+n],[t,e+n]];"solid"===a.fillStyle?o.push(F([i],a)):o.push($([i],a))}return a.stroke!==J&&o.push(s),this._d("rectangle",o,a)}ellipse(t,e,r,n,i){const a=this._o(i),o=[],s=T(r,n,a),l=M(t,e,a,s);if(a.fill)if("solid"===a.fillStyle){const r=M(t,e,a,s).opset;r.type="fillPath",o.push(r)}else o.push($([l.estimatedPoints],a));return a.stroke!==J&&o.push(l.opset),this._d("ellipse",o,a)}circle(t,e,r,n){const i=this.ellipse(t,e,r,r,n);return i.shape="circle",i}linearPath(t,e){const r=this._o(e);return this._d("linearPath",[S(t,!1,r)],r)}arc(t,e,r,n,i,a,o=!1,s){const l=this._o(s),c=[],h=B(t,e,r,n,i,a,o,!0,l);if(o&&l.fill)if("solid"===l.fillStyle){const o=Object.assign({},l);o.disableMultiStroke=!0;const s=B(t,e,r,n,i,a,!0,!1,o);s.type="fillPath",c.push(s)}else c.push(function(t,e,r,n,i,a,o){const s=t,l=e;let c=Math.abs(r/2),h=Math.abs(n/2);c+=O(.01*c,o),h+=O(.01*h,o);let u=i,d=a;for(;u<0;)u+=2*Math.PI,d+=2*Math.PI;d-u>2*Math.PI&&(u=0,d=2*Math.PI);const p=(d-u)/o.curveStepCount,f=[];for(let g=u;g<=d;g+=p)f.push([s+c*Math.cos(g),l+h*Math.sin(g)]);return f.push([s+c*Math.cos(d),l+h*Math.sin(d)]),f.push([s,l]),$([f],o)}(t,e,r,n,i,a,l));return l.stroke!==J&&c.push(h),this._d("arc",c,l)}curve(t,e){const r=this._o(e),n=[],i=A(t,r);if(r.fill&&r.fill!==J)if("solid"===r.fillStyle){const e=A(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));n.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else{const e=[],i=t;if(i.length){const t="number"==typeof i[0][0]?[i]:i;for(const n of t)n.length<3?e.push(...n):3===n.length?e.push(...Q(H([n[0],n[0],n[1],n[2]]),10,(1+r.roughness)/2)):e.push(...Q(H(n),10,(1+r.roughness)/2))}e.length&&n.push($([e],r))}return r.stroke!==J&&n.push(i),this._d("curve",n,r)}polygon(t,e){const r=this._o(e),n=[],i=S(t,!0,r);return r.fill&&("solid"===r.fillStyle?n.push(F([t],r)):n.push($([t],r))),r.stroke!==J&&n.push(i),this._d("polygon",n,r)}path(t,e){const r=this._o(e),n=[];if(!t)return this._d("path",n,r);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const i=r.fill&&"transparent"!==r.fill&&r.fill!==J,a=r.stroke!==J,o=!!(r.simplification&&r.simplification<1),s=function(t,e,r){const n=k(b(x(t))),i=[];let a=[],o=[0,0],s=[];const l=()=>{s.length>=4&&a.push(...Q(s,1)),s=[]},c=()=>{l(),a.length&&(i.push(a),a=[])};for(const{key:u,data:d}of n)switch(u){case"M":c(),o=[d[0],d[1]],a.push(o);break;case"L":l(),a.push([d[0],d[1]]);break;case"C":if(!s.length){const t=a.length?a[a.length-1]:o;s.push([t[0],t[1]])}s.push([d[0],d[1]]),s.push([d[2],d[3]]),s.push([d[4],d[5]]);break;case"Z":l(),a.push([o[0],o[1]])}if(c(),!r)return i;const h=[];for(const u of i){const t=V(u,r);t.length&&h.push(t)}return h}(t,0,o?4-4*(r.simplification||1):(1+r.roughness)/2),l=L(t,r);if(i)if("solid"===r.fillStyle)if(1===s.length){const e=L(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));n.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else n.push(F(s,r));else n.push($(s,r));return a&&(o?s.forEach(t=>{n.push(S(t,!1,r))}):n.push(l)),this._d("path",n,r)}opsToPath(t,e){let r="";for(const n of t.ops){const t="number"==typeof e&&e>=0?n.data.map(t=>+t.toFixed(e)):n.data;switch(n.op){case"move":r+=`M${t[0]} ${t[1]} `;break;case"bcurveTo":r+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case"lineTo":r+=`L${t[0]} ${t[1]} `}}return r.trim()}toPaths(t){const e=t.sets||[],r=t.options||this.defaultOptions,n=[];for(const i of e){let t=null;switch(i.type){case"path":t={d:this.opsToPath(i),stroke:r.stroke,strokeWidth:r.strokeWidth,fill:J};break;case"fillPath":t={d:this.opsToPath(i),stroke:J,strokeWidth:0,fill:r.fill||J};break;case"fillSketch":t=this.fillSketch(i,r)}t&&n.push(t)}return n}fillSketch(t,e){let r=e.fillWeight;return r<0&&(r=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||J,strokeWidth:r,fill:J}}_mergedShape(t){return t.filter((t,e)=>0===e||"move"!==t.op)}}class et{constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new tt(e)}draw(t){const e=t.sets||[],r=t.options||this.getDefaultOptions(),n=this.ctx,i=t.options.fixedDecimalPlaceDigits;for(const a of e)switch(a.type){case"path":n.save(),n.strokeStyle="none"===r.stroke?"transparent":r.stroke,n.lineWidth=r.strokeWidth,r.strokeLineDash&&n.setLineDash(r.strokeLineDash),r.strokeLineDashOffset&&(n.lineDashOffset=r.strokeLineDashOffset),this._drawToContext(n,a,i),n.restore();break;case"fillPath":{n.save(),n.fillStyle=r.fill||"";const e="curve"===t.shape||"polygon"===t.shape||"path"===t.shape?"evenodd":"nonzero";this._drawToContext(n,a,i,e),n.restore();break}case"fillSketch":this.fillSketch(n,a,r)}}fillSketch(t,e,r){let n=r.fillWeight;n<0&&(n=r.strokeWidth/2),t.save(),r.fillLineDash&&t.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(t.lineDashOffset=r.fillLineDashOffset),t.strokeStyle=r.fill||"",t.lineWidth=n,this._drawToContext(t,e,r.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,r,n="nonzero"){t.beginPath();for(const i of e.ops){const e="number"==typeof r&&r>=0?i.data.map(t=>+t.toFixed(r)):i.data;switch(i.op){case"move":t.moveTo(e[0],e[1]);break;case"bcurveTo":t.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case"lineTo":t.lineTo(e[0],e[1])}}"fillPath"===e.type?t.fill(n):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,r,n,i){const a=this.gen.line(t,e,r,n,i);return this.draw(a),a}rectangle(t,e,r,n,i){const a=this.gen.rectangle(t,e,r,n,i);return this.draw(a),a}ellipse(t,e,r,n,i){const a=this.gen.ellipse(t,e,r,n,i);return this.draw(a),a}circle(t,e,r,n){const i=this.gen.circle(t,e,r,n);return this.draw(i),i}linearPath(t,e){const r=this.gen.linearPath(t,e);return this.draw(r),r}polygon(t,e){const r=this.gen.polygon(t,e);return this.draw(r),r}arc(t,e,r,n,i,a,o=!1,s){const l=this.gen.arc(t,e,r,n,i,a,o,s);return this.draw(l),l}curve(t,e){const r=this.gen.curve(t,e);return this.draw(r),r}path(t,e){const r=this.gen.path(t,e);return this.draw(r),r}}const rt="http://www.w3.org/2000/svg";class nt{constructor(t,e){this.svg=t,this.gen=new tt(e)}draw(t){const e=t.sets||[],r=t.options||this.getDefaultOptions(),n=this.svg.ownerDocument||window.document,i=n.createElementNS(rt,"g"),a=t.options.fixedDecimalPlaceDigits;for(const o of e){let e=null;switch(o.type){case"path":e=n.createElementNS(rt,"path"),e.setAttribute("d",this.opsToPath(o,a)),e.setAttribute("stroke",r.stroke),e.setAttribute("stroke-width",r.strokeWidth+""),e.setAttribute("fill","none"),r.strokeLineDash&&e.setAttribute("stroke-dasharray",r.strokeLineDash.join(" ").trim()),r.strokeLineDashOffset&&e.setAttribute("stroke-dashoffset",`${r.strokeLineDashOffset}`);break;case"fillPath":e=n.createElementNS(rt,"path"),e.setAttribute("d",this.opsToPath(o,a)),e.setAttribute("stroke","none"),e.setAttribute("stroke-width","0"),e.setAttribute("fill",r.fill||""),"curve"!==t.shape&&"polygon"!==t.shape||e.setAttribute("fill-rule","evenodd");break;case"fillSketch":e=this.fillSketch(n,o,r)}e&&i.appendChild(e)}return i}fillSketch(t,e,r){let n=r.fillWeight;n<0&&(n=r.strokeWidth/2);const i=t.createElementNS(rt,"path");return i.setAttribute("d",this.opsToPath(e,r.fixedDecimalPlaceDigits)),i.setAttribute("stroke",r.fill||""),i.setAttribute("stroke-width",n+""),i.setAttribute("fill","none"),r.fillLineDash&&i.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&i.setAttribute("stroke-dashoffset",`${r.fillLineDashOffset}`),i}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,r,n,i){const a=this.gen.line(t,e,r,n,i);return this.draw(a)}rectangle(t,e,r,n,i){const a=this.gen.rectangle(t,e,r,n,i);return this.draw(a)}ellipse(t,e,r,n,i){const a=this.gen.ellipse(t,e,r,n,i);return this.draw(a)}circle(t,e,r,n){const i=this.gen.circle(t,e,r,n);return this.draw(i)}linearPath(t,e){const r=this.gen.linearPath(t,e);return this.draw(r)}polygon(t,e){const r=this.gen.polygon(t,e);return this.draw(r)}arc(t,e,r,n,i,a,o=!1,s){const l=this.gen.arc(t,e,r,n,i,a,o,s);return this.draw(l)}curve(t,e){const r=this.gen.curve(t,e);return this.draw(r)}path(t,e){const r=this.gen.path(t,e);return this.draw(r)}}var it={canvas:(t,e)=>new et(t,e),svg:(t,e)=>new nt(t,e),generator:t=>new tt(t),newSeed:()=>tt.newSeed()}},9912:(t,e,r)=>{"use strict";r.d(e,{A:()=>l});var n=r(1917);const i=function(){return!1};var a="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=a&&"object"==typeof module&&module&&!module.nodeType&&module,s=o&&o.exports===a?n.A.Buffer:void 0;const l=(s?s.isBuffer:void 0)||i}}]);
\ No newline at end of file
diff --git a/docs/assets/js/17896441.01d36818.js.LICENSE.txt b/docs/assets/js/17896441.01d36818.js.LICENSE.txt
deleted file mode 100644
index 6e97ec6..0000000
--- a/docs/assets/js/17896441.01d36818.js.LICENSE.txt
+++ /dev/null
@@ -1 +0,0 @@
-/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
diff --git a/docs/assets/js/2334.ec883784.js b/docs/assets/js/2334.ec883784.js
deleted file mode 100644
index 4df4e87..0000000
--- a/docs/assets/js/2334.ec883784.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[2334],{697:(e,n,t)=>{t.d(n,{T:()=>r.T});var r=t(7981)},2334:(e,n,t)=>{t.d(n,{Zp:()=>Rn});var r=t(8058),o=t(8894),i=0;const u=function(e){var n=++i;return(0,o.A)(e)+n};var s=t(9142),a=t(4098),d=t(4722),c=Math.ceil,h=Math.max;const f=function(e,n,t,r){for(var o=-1,i=h(c((n-e)/(t||1)),0),u=Array(i);i--;)u[r?i:++o]=e,e+=t;return u};var g=t(6832),l=t(4342);const v=function(e){return function(n,t,r){return r&&"number"!=typeof r&&(0,g.A)(n,t,r)&&(t=r=void 0),n=(0,l.A)(n),void 0===t?(t=n,n=0):t=(0,l.A)(t),r=void 0===r?n0;--s)if(r=n[s].dequeue()){o=o.concat(_(e,n,t,r,!0));break}}return o}(t.graph,t.buckets,t.zeroIdx);return a.A(d.A(o,function(n){return e.outEdges(n.v,n.w)}))}function _(e,n,t,o,i){var u=i?[]:void 0;return r.A(e.inEdges(o.v),function(r){var o=e.edge(r),s=e.node(r.v);i&&u.push({v:r.v,w:r.w}),s.out-=o,E(n,t,s)}),r.A(e.outEdges(o.v),function(r){var o=e.edge(r),i=r.w,u=e.node(i);u.in-=o,E(n,t,u)}),e.removeNode(o.v),u}function E(e,n,t){t.out?t.in?e[t.out-t.in+n].enqueue(t):e[e.length-1].enqueue(t):e[0].enqueue(t)}function x(e){var n="greedy"===e.graph().acyclicer?y(e,function(e){return function(n){return e.edge(n).weight}}(e)):function(e){var n=[],t={},o={};function i(u){Object.prototype.hasOwnProperty.call(o,u)||(o[u]=!0,t[u]=!0,r.A(e.outEdges(u),function(e){Object.prototype.hasOwnProperty.call(t,e.w)?n.push(e):i(e.w)}),delete t[u])}return r.A(e.nodes(),i),n}(e);r.A(n,function(n){var t=e.edge(n);e.removeEdge(n),t.forwardName=n.name,t.reversed=!0,e.setEdge(n.w,n.v,t,u("rev"))})}var k=t(2837),N=t(9354),O=t(9188);const P=function(e,n){return(0,N.A)(e,n,function(n,t){return(0,O.A)(e,t)})};var C=t(6875),j=t(7525);const L=function(e){return(0,j.A)((0,C.A)(e,void 0,a.A),e+"")}(function(e,n){return null==e?{}:P(e,n)});var I=t(3068),T=t(2559);const M=function(e,n){return e>n};var R=t(9008);const F=function(e){return e&&e.length?(0,T.A)(e,R.A,M):void 0};var D=t(6666),S=t(2528),G=t(9841),V=t(3958);const B=function(e,n){var t={};return n=(0,V.A)(n,3),(0,G.A)(e,function(e,r,o){(0,S.A)(t,r,n(e,r,o))}),t};var q=t(9592),Y=t(6452),z=t(8585),J=t(1917);const Z=function(){return J.A.Date.now()};function H(e,n,t,r){var o;do{o=u(r)}while(e.hasNode(o));return t.dummy=n,e.setNode(o,t),o}function K(e){var n=new p.T({multigraph:e.isMultigraph()}).setGraph(e.graph());return r.A(e.nodes(),function(t){e.children(t).length||n.setNode(t,e.node(t))}),r.A(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function Q(e,n){var t,r,o=e.x,i=e.y,u=n.x-o,s=n.y-i,a=e.width/2,d=e.height/2;if(!u&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*a>Math.abs(u)*d?(s<0&&(d=-d),t=d*u/s,r=d):(u<0&&(a=-a),t=a,r=a*s/u),{x:o+t,y:i+r}}function U(e){var n=d.A(v(X(e)+1),function(){return[]});return r.A(e.nodes(),function(t){var r=e.node(t),o=r.rank;q.A(o)||(n[o][r.order]=t)}),n}function W(e,n,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),H(e,"border",o,n)}function X(e){return F(d.A(e.nodes(),function(n){var t=e.node(n).rank;if(!q.A(t))return t}))}function $(e,n){var t=Z();try{return n()}finally{console.log(e+" time: "+(Z()-t)+"ms")}}function ee(e,n){return n()}function ne(e,n,t,r,o,i){var u={width:0,height:0,rank:i,borderType:n},s=o[n][i-1],a=H(e,"border",u,t);o[n][i]=a,e.setParent(a,r),s&&e.setEdge(s,a,{weight:1})}function te(e){var n=e.graph().rankdir.toLowerCase();"bt"!==n&&"rl"!==n||function(e){r.A(e.nodes(),function(n){ie(e.node(n))}),r.A(e.edges(),function(n){var t=e.edge(n);r.A(t.points,ie),Object.prototype.hasOwnProperty.call(t,"y")&&ie(t)})}(e),"lr"!==n&&"rl"!==n||(!function(e){r.A(e.nodes(),function(n){ue(e.node(n))}),r.A(e.edges(),function(n){var t=e.edge(n);r.A(t.points,ue),Object.prototype.hasOwnProperty.call(t,"x")&&ue(t)})}(e),re(e))}function re(e){r.A(e.nodes(),function(n){oe(e.node(n))}),r.A(e.edges(),function(n){oe(e.edge(n))})}function oe(e){var n=e.width;e.width=e.height,e.height=n}function ie(e){e.y=-e.y}function ue(e){var n=e.x;e.x=e.y,e.y=n}function se(e){e.graph().dummyChains=[],r.A(e.edges(),function(n){!function(e,n){var t=n.v,r=e.node(t).rank,o=n.w,i=e.node(o).rank,u=n.name,s=e.edge(n),a=s.labelRank;if(i===r+1)return;e.removeEdge(n);var d,c,h=void 0;for(c=0,++r;ru.lim&&(s=u,a=!0);var d=Ae.A(n.edges(),function(n){return a===Be(e,e.node(n.v),s)&&a!==Be(e,e.node(n.w),s)});return de(d,function(e){return he(n,e)})}function Ve(e,n,t,o){var i=t.v,u=t.w;e.removeEdge(i,u),e.setEdge(o.v,o.w,{}),Fe(e),Me(e,n),function(e,n){var t=pe.A(e.nodes(),function(e){return!n.node(e).parent}),o=function(e,n){return Le(e,n,"pre")}(e,t);o=o.slice(1),r.A(o,function(t){var r=e.node(t).parent,o=n.edge(t,r),i=!1;o||(o=n.edge(r,t),i=!0),n.node(t).rank=n.node(r).rank+(i?o.minlen:-o.minlen)})}(e,n)}function Be(e,n,t){return t.low<=n.lim&&n.lim<=t.lim}function qe(e){switch(e.graph().ranker){case"network-simplex":default:ze(e);break;case"tight-tree":!function(e){ce(e),fe(e)}(e);break;case"longest-path":Ye(e)}}Te.initLowLimValues=Fe,Te.initCutValues=Me,Te.calcCutValue=Re,Te.leaveEdge=Se,Te.enterEdge=Ge,Te.exchangeEdges=Ve;var Ye=ce;function ze(e){Te(e)}var Je=t(8207),Ze=t(9463);function He(e){var n=H(e,"root",{},"_root"),t=function(e){var n={};function t(o,i){var u=e.children(o);u&&u.length&&r.A(u,function(e){t(e,i+1)}),n[o]=i}return r.A(e.children(),function(e){t(e,1)}),n}(e),o=F(Je.A(t))-1,i=2*o+1;e.graph().nestingRoot=n,r.A(e.edges(),function(n){e.edge(n).minlen*=i});var u=function(e){return Ze.A(e.edges(),function(n,t){return n+e.edge(t).weight},0)}(e)+1;r.A(e.children(),function(r){Ke(e,n,i,u,o,t,r)}),e.graph().nodeRankFactor=i}function Ke(e,n,t,o,i,u,s){var a=e.children(s);if(a.length){var d=W(e,"_bt"),c=W(e,"_bb"),h=e.node(s);e.setParent(d,s),h.borderTop=d,e.setParent(c,s),h.borderBottom=c,r.A(a,function(r){Ke(e,n,t,o,i,u,r);var a=e.node(r),h=a.borderTop?a.borderTop:r,f=a.borderBottom?a.borderBottom:r,g=a.borderTop?o:2*o,l=h!==f?1:i-u[s]+1;e.setEdge(d,h,{weight:g,minlen:l,nestingEdge:!0}),e.setEdge(f,c,{weight:g,minlen:l,nestingEdge:!0})}),e.parent(s)||e.setEdge(n,d,{weight:0,minlen:i+u[s]})}else s!==n&&e.setEdge(n,s,{weight:0,minlen:t})}var Qe=t(8675);const Ue=function(e){return(0,Qe.A)(e,5)};function We(e,n,t){var o=function(e){var n;for(;e.hasNode(n=u("_root")););return n}(e),i=new p.T({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(n){return e.node(n)});return r.A(e.nodes(),function(u){var s=e.node(u),a=e.parent(u);(s.rank===n||s.minRank<=n&&n<=s.maxRank)&&(i.setNode(u),i.setParent(u,a||o),r.A(e[t](u),function(n){var t=n.v===u?n.w:n.v,r=i.edge(t,u),o=q.A(r)?0:r.weight;i.setEdge(t,u,{weight:e.edge(n).weight+o})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(u,{borderLeft:s.borderLeft[n],borderRight:s.borderRight[n]}))}),i}var Xe=t(2851);const $e=function(e,n,t){for(var r=-1,o=e.length,i=n.length,u={};++rn||i&&u&&a&&!s&&!d||r&&u&&a||!t&&a||!o)return 1;if(!r&&!i&&!d&&e=s?a:a*("desc"==t[r]?-1:1)}return e.index-n.index};const hn=function(e,n,t){n=n.length?(0,tn.A)(n,function(e){return(0,je.A)(e)?function(n){return(0,rn.A)(n,1===e.length?e[0]:e)}:e}):[R.A];var r=-1;n=(0,tn.A)(n,(0,sn.A)(V.A));var o=(0,on.A)(e,function(e,t,o){return{criteria:(0,tn.A)(n,function(n){return n(e)}),index:++r,value:e}});return un(o,function(e,n){return cn(e,n,t)})};const fn=(0,t(4326).A)(function(e,n){if(null==e)return[];var t=n.length;return t>1&&(0,g.A)(e,n[0],n[1])?n=[]:t>2&&(0,g.A)(n[0],n[1],n[2])&&(n=[n[0]]),hn(e,(0,nn.A)(n,1),[])});function gn(e,n){for(var t=0,r=1;r0;)n%2&&(t+=c[n+1]),c[n=n-1>>1]+=e.weight;h+=e.weight*t})),h}function vn(e,n){var t={};return r.A(e,function(e,n){var r=t[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:n};q.A(e.barycenter)||(r.barycenter=e.barycenter,r.weight=e.weight)}),r.A(n.edges(),function(e){var n=t[e.v],r=t[e.w];q.A(n)||q.A(r)||(r.indegree++,n.out.push(t[e.w]))}),function(e){var n=[];function t(e){return function(n){n.merged||(q.A(n.barycenter)||q.A(e.barycenter)||n.barycenter>=e.barycenter)&&function(e,n){var t=0,r=0;e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.vs=n.vs.concat(e.vs),e.barycenter=t/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}(e,n)}}function o(n){return function(t){t.in.push(n),0===--t.indegree&&e.push(t)}}for(;e.length;){var i=e.pop();n.push(i),r.A(i.in.reverse(),t(i)),r.A(i.out,o(i))}return d.A(Ae.A(n,function(e){return!e.merged}),function(e){return L(e,["vs","i","barycenter","weight"])})}(Ae.A(t,function(e){return!e.indegree}))}function pn(e,n){var t,o=function(e,n){var t={lhs:[],rhs:[]};return r.A(e,function(e){n(e)?t.lhs.push(e):t.rhs.push(e)}),t}(e,function(e){return Object.prototype.hasOwnProperty.call(e,"barycenter")}),i=o.lhs,u=fn(o.rhs,function(e){return-e.i}),s=[],d=0,c=0,h=0;i.sort((t=!!n,function(e,n){return e.barycentern.barycenter?1:t?n.i-e.i:e.i-n.i})),h=An(s,u,h),r.A(i,function(e){h+=e.vs.length,s.push(e.vs),d+=e.barycenter*e.weight,c+=e.weight,h=An(s,u,h)});var f={vs:a.A(s)};return c&&(f.barycenter=d/c,f.weight=c),f}function An(e,n,t){for(var r;n.length&&(r=D.A(n)).i<=t;)n.pop(),e.push(r.vs),t++;return t}function wn(e,n,t,o){var i=e.children(n),u=e.node(n),s=u?u.borderLeft:void 0,c=u?u.borderRight:void 0,h={};s&&(i=Ae.A(i,function(e){return e!==s&&e!==c}));var f=function(e,n){return d.A(n,function(n){var t=e.inEdges(n);if(t.length){var r=Ze.A(t,function(n,t){var r=e.edge(t),o=e.node(t.v);return{sum:n.sum+r.weight*o.order,weight:n.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:r.sum/r.weight,weight:r.weight}}return{v:n}})}(e,i);r.A(f,function(n){if(e.children(n.v).length){var r=wn(e,n.v,t,o);h[n.v]=r,Object.prototype.hasOwnProperty.call(r,"barycenter")&&(i=n,u=r,q.A(i.barycenter)?(i.barycenter=u.barycenter,i.weight=u.weight):(i.barycenter=(i.barycenter*i.weight+u.barycenter*u.weight)/(i.weight+u.weight),i.weight+=u.weight))}var i,u});var g=vn(f,t);!function(e,n){r.A(e,function(e){e.vs=a.A(e.vs.map(function(e){return n[e]?n[e].vs:e}))})}(g,h);var l=pn(g,o);if(s&&(l.vs=a.A([s,l.vs,c]),e.predecessors(s).length)){var v=e.node(e.predecessors(s)[0]),p=e.node(e.predecessors(c)[0]);Object.prototype.hasOwnProperty.call(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+v.order+p.order)/(l.weight+2),l.weight+=2}return l}function bn(e){var n=X(e),t=mn(e,v(1,n+1),"inEdges"),o=mn(e,v(n-1,-1,-1),"outEdges"),i=function(e){var n={},t=Ae.A(e.nodes(),function(n){return!e.children(n).length}),o=F(d.A(t,function(n){return e.node(n).rank})),i=d.A(v(o+1),function(){return[]}),u=fn(t,function(n){return e.node(n).rank});return r.A(u,function t(o){if(!z.A(n,o)){n[o]=!0;var u=e.node(o);i[u.rank].push(o),r.A(e.successors(o),t)}}),i}(e);_n(e,i);for(var u,s=Number.POSITIVE_INFINITY,a=0,c=0;c<4;++a,++c){yn(a%2?t:o,a%4>=2);var h=gn(e,i=U(e));ha||d>n[o].lim));i=o,o=r;for(;(o=e.parent(o))!==i;)s.push(o);return{path:u.concat(s.reverse()),lca:i}}(e,n,o.v,o.w),u=i.path,s=i.lca,a=0,d=u[a],c=!0;t!==o.w;){if(r=e.node(t),c){for(;(d=u[a])!==s&&e.node(d).maxRankt){var r=n;n=t,t=r}var o=e[n];o||(e[n]=o={}),o[t]=!0}function Ln(e,n,t){if(n>t){var r=n;n=t,t=r}return!!e[n]&&Object.prototype.hasOwnProperty.call(e[n],t)}function In(e,n,t,o,i){var u={},s=function(e,n,t,o){var i=new p.T,u=e.graph(),s=function(e,n,t){return function(r,o,i){var u,s=r.node(o),a=r.node(i),d=0;if(d+=s.width/2,Object.prototype.hasOwnProperty.call(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":u=-s.width/2;break;case"r":u=s.width/2}if(u&&(d+=t?u:-u),u=0,d+=(s.dummy?n:e)/2,d+=(a.dummy?n:e)/2,d+=a.width/2,Object.prototype.hasOwnProperty.call(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":u=a.width/2;break;case"r":u=-a.width/2}return u&&(d+=t?u:-u),u=0,d}}(u.nodesep,u.edgesep,o);return r.A(n,function(n){var o;r.A(n,function(n){var r=t[n];if(i.setNode(r),o){var u=t[o],a=i.edge(u,r);i.setEdge(u,r,Math.max(s(e,n,o),a||0))}o=n})}),i}(e,n,t,i),a=i?"borderLeft":"borderRight";function d(e,n){for(var t=s.nodes(),r=t.pop(),o={};r;)o[r]?e(r):(o[r]=!0,t.push(r),t=t.concat(n(r))),r=t.pop()}return d(function(e){u[e]=s.inEdges(e).reduce(function(e,n){return Math.max(e,u[n.v]+s.edge(n))},0)},s.predecessors.bind(s)),d(function(n){var t=s.outEdges(n).reduce(function(e,n){return Math.min(e,u[n.w]-s.edge(n))},Number.POSITIVE_INFINITY),r=e.node(n);t!==Number.POSITIVE_INFINITY&&r.borderType!==a&&(u[n]=Math.max(u[n],t))},s.successors.bind(s)),r.A(o,function(e){u[e]=u[t[e]]}),u}function Tn(e){var n,t=U(e),o=k.A(Cn(e,t),function(e,n){var t={};function o(n,o,i,u,s){var a;r.A(v(o,i),function(o){a=n[o],e.node(a).dummy&&r.A(e.predecessors(a),function(n){var r=e.node(n);r.dummy&&(r.orders)&&jn(t,n,a)})})}return Ze.A(n,function(n,t){var i,u=-1,s=0;return r.A(t,function(r,a){if("border"===e.node(r).dummy){var d=e.predecessors(r);d.length&&(i=e.node(d[0]).order,o(t,s,a,u,i),s=a,u=i)}o(t,s,t.length,i,n.length)}),t}),t}(e,t)),i={};r.A(["u","d"],function(u){n="u"===u?t:Je.A(t).reverse(),r.A(["l","r"],function(t){"r"===t&&(n=d.A(n,function(e){return Je.A(e).reverse()}));var s=("u"===u?e.predecessors:e.successors).bind(e),a=function(e,n,t,o){var i={},u={},s={};return r.A(n,function(e){r.A(e,function(e,n){i[e]=e,u[e]=e,s[e]=n})}),r.A(n,function(e){var n=-1;r.A(e,function(e){var r=o(e);if(r.length){r=fn(r,function(e){return s[e]});for(var a=(r.length-1)/2,d=Math.floor(a),c=Math.ceil(a);d<=c;++d){var h=r[d];u[e]===e&&n{var n=t(" buildLayoutGraph",()=>function(e){var n=new p.T({multigraph:!0,compound:!0}),t=Jn(e.graph());return n.setGraph(k.A({},Dn,zn(t,Fn),L(t,Sn))),r.A(e.nodes(),function(t){var r=Jn(e.node(t));n.setNode(t,I.A(zn(r,Gn),Vn)),n.setParent(t,e.parent(t))}),r.A(e.edges(),function(t){var r=Jn(e.edge(t));n.setEdge(t,k.A({},qn,zn(r,Bn),L(r,Yn)))}),n}(e));t(" runLayout",()=>function(e,n){n(" makeSpaceForEdgeLabels",()=>function(e){var n=e.graph();n.ranksep/=2,r.A(e.edges(),function(t){var r=e.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===n.rankdir||"BT"===n.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}(e)),n(" removeSelfEdges",()=>function(e){r.A(e.edges(),function(n){if(n.v===n.w){var t=e.node(n.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}(e)),n(" acyclic",()=>x(e)),n(" nestingGraph.run",()=>He(e)),n(" rank",()=>qe(K(e))),n(" injectEdgeLabelProxies",()=>function(e){r.A(e.edges(),function(n){var t=e.edge(n);if(t.width&&t.height){var r=e.node(n.v),o={rank:(e.node(n.w).rank-r.rank)/2+r.rank,e:n};H(e,"edge-proxy",o,"_ep")}})}(e)),n(" removeEmptyRanks",()=>function(e){var n=Y.A(d.A(e.nodes(),function(n){return e.node(n).rank})),t=[];r.A(e.nodes(),function(r){var o=e.node(r).rank-n;t[o]||(t[o]=[]),t[o].push(r)});var o=0,i=e.graph().nodeRankFactor;r.A(t,function(n,t){q.A(n)&&t%i!==0?--o:o&&r.A(n,function(n){e.node(n).rank+=o})})}(e)),n(" nestingGraph.cleanup",()=>function(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,r.A(e.edges(),function(n){e.edge(n).nestingEdge&&e.removeEdge(n)})}(e)),n(" normalizeRanks",()=>function(e){var n=Y.A(d.A(e.nodes(),function(n){return e.node(n).rank}));r.A(e.nodes(),function(t){var r=e.node(t);z.A(r,"rank")&&(r.rank-=n)})}(e)),n(" assignRankMinMax",()=>function(e){var n=0;r.A(e.nodes(),function(t){var r=e.node(t);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,n=F(n,r.maxRank))}),e.graph().maxRank=n}(e)),n(" removeEdgeLabelProxies",()=>function(e){r.A(e.nodes(),function(n){var t=e.node(n);"edge-proxy"===t.dummy&&(e.edge(t.e).labelRank=t.rank,e.removeNode(n))})}(e)),n(" normalize.run",()=>se(e)),n(" parentDummyChains",()=>En(e)),n(" addBorderSegments",()=>function(e){r.A(e.children(),function n(t){var o=e.children(t),i=e.node(t);if(o.length&&r.A(o,n),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var u=i.minRank,s=i.maxRank+1;ubn(e)),n(" insertSelfEdges",()=>function(e){var n=U(e);r.A(n,function(n){var t=0;r.A(n,function(n,o){var i=e.node(n);i.order=o+t,r.A(i.selfEdges,function(n){H(e,"selfedge",{width:n.label.width,height:n.label.height,rank:i.rank,order:o+ ++t,e:n.e,label:n.label},"_se")}),delete i.selfEdges})})}(e)),n(" adjustCoordinateSystem",()=>function(e){var n=e.graph().rankdir.toLowerCase();"lr"!==n&&"rl"!==n||re(e)}(e)),n(" position",()=>Mn(e)),n(" positionSelfEdges",()=>function(e){r.A(e.nodes(),function(n){var t=e.node(n);if("selfedge"===t.dummy){var r=e.node(t.e.v),o=r.x+r.width/2,i=r.y,u=t.x-o,s=r.height/2;e.setEdge(t.e,t.label),e.removeNode(n),t.label.points=[{x:o+2*u/3,y:i-s},{x:o+5*u/6,y:i-s},{x:o+u,y:i},{x:o+5*u/6,y:i+s},{x:o+2*u/3,y:i+s}],t.label.x=t.x,t.label.y=t.y}})}(e)),n(" removeBorderNodes",()=>function(e){r.A(e.nodes(),function(n){if(e.children(n).length){var t=e.node(n),r=e.node(t.borderTop),o=e.node(t.borderBottom),i=e.node(D.A(t.borderLeft)),u=e.node(D.A(t.borderRight));t.width=Math.abs(u.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}}),r.A(e.nodes(),function(n){"border"===e.node(n).dummy&&e.removeNode(n)})}(e)),n(" normalize.undo",()=>function(e){r.A(e.graph().dummyChains,function(n){var t,r=e.node(n),o=r.edgeLabel;for(e.setEdge(r.edgeObj,o);r.dummy;)t=e.successors(n)[0],e.removeNode(n),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),n=t,r=e.node(n)})}(e)),n(" fixupEdgeLabelCoords",()=>function(e){r.A(e.edges(),function(n){var t=e.edge(n);if(Object.prototype.hasOwnProperty.call(t,"x"))switch("l"!==t.labelpos&&"r"!==t.labelpos||(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}})}(e)),n(" undoCoordinateSystem",()=>te(e)),n(" translateGraph",()=>function(e){var n=Number.POSITIVE_INFINITY,t=0,o=Number.POSITIVE_INFINITY,i=0,u=e.graph(),s=u.marginx||0,a=u.marginy||0;function d(e){var r=e.x,u=e.y,s=e.width,a=e.height;n=Math.min(n,r-s/2),t=Math.max(t,r+s/2),o=Math.min(o,u-a/2),i=Math.max(i,u+a/2)}r.A(e.nodes(),function(n){d(e.node(n))}),r.A(e.edges(),function(n){var t=e.edge(n);Object.prototype.hasOwnProperty.call(t,"x")&&d(t)}),n-=s,o-=a,r.A(e.nodes(),function(t){var r=e.node(t);r.x-=n,r.y-=o}),r.A(e.edges(),function(t){var i=e.edge(t);r.A(i.points,function(e){e.x-=n,e.y-=o}),Object.prototype.hasOwnProperty.call(i,"x")&&(i.x-=n),Object.prototype.hasOwnProperty.call(i,"y")&&(i.y-=o)}),u.width=t-n+s,u.height=i-o+a}(e)),n(" assignNodeIntersects",()=>function(e){r.A(e.edges(),function(n){var t,r,o=e.edge(n),i=e.node(n.v),u=e.node(n.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=u,r=i),o.points.unshift(Q(i,t)),o.points.push(Q(u,r))})}(e)),n(" reversePoints",()=>function(e){r.A(e.edges(),function(n){var t=e.edge(n);t.reversed&&t.points.reverse()})}(e)),n(" acyclic.undo",()=>function(e){r.A(e.edges(),function(n){var t=e.edge(n);if(t.reversed){e.removeEdge(n);var r=t.forwardName;delete t.reversed,delete t.forwardName,e.setEdge(n.w,n.v,t,r)}})}(e))}(n,t)),t(" updateInputGraph",()=>function(e,n){r.A(e.nodes(),function(t){var r=e.node(t),o=n.node(t);r&&(r.x=o.x,r.y=o.y,n.children(t).length&&(r.width=o.width,r.height=o.height))}),r.A(e.edges(),function(t){var r=e.edge(t),o=n.edge(t);r.points=o.points,Object.prototype.hasOwnProperty.call(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}(e,n))})}var Fn=["nodesep","edgesep","ranksep","marginx","marginy"],Dn={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Sn=["acyclicer","ranker","rankdir","align"],Gn=["width","height"],Vn={width:0,height:0},Bn=["minlen","weight","width","height","labeloffset"],qn={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Yn=["labelpos"];function zn(e,n){return B(L(e,n),Number)}function Jn(e){var n={};return r.A(e,function(e,t){n[t.toLowerCase()]=e}),n}},7981:(e,n,t)=>{t.d(n,{T:()=>w});var r=t(9142),o=t(9610),i=t(7422),u=t(4092),s=t(6401),a=t(8058),d=t(9592),c=t(3588),h=t(4326),f=t(9902),g=t(3533);const l=(0,h.A)(function(e){return(0,f.A)((0,c.A)(e,1,g.A,!0))});var v=t(8207),p=t(9463),A="\0";class w{constructor(e={}){this._isDirected=!Object.prototype.hasOwnProperty.call(e,"directed")||e.directed,this._isMultigraph=!!Object.prototype.hasOwnProperty.call(e,"multigraph")&&e.multigraph,this._isCompound=!!Object.prototype.hasOwnProperty.call(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=r.A(void 0),this._defaultEdgeLabelFn=r.A(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[A]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return o.A(e)||(e=r.A(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return i.A(this._nodes)}sources(){var e=this;return u.A(this.nodes(),function(n){return s.A(e._in[n])})}sinks(){var e=this;return u.A(this.nodes(),function(n){return s.A(e._out[n])})}setNodes(e,n){var t=arguments,r=this;return a.A(e,function(e){t.length>1?r.setNode(e,n):r.setNode(e)}),this}setNode(e,n){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=n),this):(this._nodes[e]=arguments.length>1?n:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=A,this._children[e]={},this._children[A][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var n=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],a.A(this.children(e),e=>{this.setParent(e)}),delete this._children[e]),a.A(i.A(this._in[e]),n),delete this._in[e],delete this._preds[e],a.A(i.A(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(d.A(n))n=A;else{for(var t=n+="";!d.A(t);t=this.parent(t))if(t===e)throw new Error("Setting "+n+" as parent of "+e+" would create a cycle");this.setNode(n)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=n,this._children[n][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var n=this._parent[e];if(n!==A)return n}}children(e){if(d.A(e)&&(e=A),this._isCompound){var n=this._children[e];if(n)return i.A(n)}else{if(e===A)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var n=this._preds[e];if(n)return i.A(n)}successors(e){var n=this._sucs[e];if(n)return i.A(n)}neighbors(e){var n=this.predecessors(e);if(n)return l(n,this.successors(e))}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var t=this;a.A(this._nodes,function(t,r){e(r)&&n.setNode(r,t)}),a.A(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,t.edge(e))});var r={};function o(e){var i=t.parent(e);return void 0===i||n.hasNode(i)?(r[e]=i,i):i in r?r[i]:o(i)}return this._isCompound&&a.A(n.nodes(),function(e){n.setParent(e,o(e))}),n}setDefaultEdgeLabel(e){return o.A(e)||(e=r.A(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return v.A(this._edgeObjs)}setPath(e,n){var t=this,r=arguments;return p.A(e,function(e,o){return r.length>1?t.setEdge(e,o,n):t.setEdge(e,o),o}),this}setEdge(){var e,n,t,r,o=!1,i=arguments[0];"object"==typeof i&&null!==i&&"v"in i?(e=i.v,n=i.w,t=i.name,2===arguments.length&&(r=arguments[1],o=!0)):(e=i,n=arguments[1],t=arguments[3],arguments.length>2&&(r=arguments[2],o=!0)),e=""+e,n=""+n,d.A(t)||(t=""+t);var u=y(this._isDirected,e,n,t);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,u))return o&&(this._edgeLabels[u]=r),this;if(!d.A(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(n),this._edgeLabels[u]=o?r:this._defaultEdgeLabelFn(e,n,t);var s=function(e,n,t,r){var o=""+n,i=""+t;if(!e&&o>i){var u=o;o=i,i=u}var s={v:o,w:i};r&&(s.name=r);return s}(this._isDirected,e,n,t);return e=s.v,n=s.w,Object.freeze(s),this._edgeObjs[u]=s,b(this._preds[n],e),b(this._sucs[e],n),this._in[n][u]=s,this._out[e][u]=s,this._edgeCount++,this}edge(e,n,t){var r=1===arguments.length?_(this._isDirected,arguments[0]):y(this._isDirected,e,n,t);return this._edgeLabels[r]}hasEdge(e,n,t){var r=1===arguments.length?_(this._isDirected,arguments[0]):y(this._isDirected,e,n,t);return Object.prototype.hasOwnProperty.call(this._edgeLabels,r)}removeEdge(e,n,t){var r=1===arguments.length?_(this._isDirected,arguments[0]):y(this._isDirected,e,n,t),o=this._edgeObjs[r];return o&&(e=o.v,n=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],m(this._preds[n],e),m(this._sucs[e],n),delete this._in[n][r],delete this._out[e][r],this._edgeCount--),this}inEdges(e,n){var t=this._in[e];if(t){var r=v.A(t);return n?u.A(r,function(e){return e.v===n}):r}}outEdges(e,n){var t=this._out[e];if(t){var r=v.A(t);return n?u.A(r,function(e){return e.w===n}):r}}nodeEdges(e,n){var t=this.inEdges(e,n);if(t)return t.concat(this.outEdges(e,n))}}function b(e,n){e[n]?e[n]++:e[n]=1}function m(e,n){--e[n]||delete e[n]}function y(e,n,t,r){var o=""+n,i=""+t;if(!e&&o>i){var u=o;o=i,i=u}return o+"\x01"+i+"\x01"+(d.A(r)?"\0":r)}function _(e,n){return y(e,n.v,n.w,n.name)}w.prototype._nodeCount=0,w.prototype._edgeCount=0}}]);
\ No newline at end of file
diff --git a/docs/assets/js/2822.5436caff.js b/docs/assets/js/2822.5436caff.js
deleted file mode 100644
index e24b99b..0000000
--- a/docs/assets/js/2822.5436caff.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[2822],{2822:(t,e,s)=>{s.d(e,{diagram:()=>C});var i=s(4651),n=s(9026),r=s(4540),a=s(8833),u=s(5020),o=(s(1789),s(70),s(6906)),c=(s(8823),s(5683),s(8506),s(6792)),l=s(1750),h=s(451),d=s(5937),p=s(5582),g=class{constructor(){this.vertexCounter=0,this.config=(0,l.D7)(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=l.SV,this.setAccDescription=l.EI,this.setDiagramTitle=l.ke,this.getAccTitle=l.iN,this.getAccDescription=l.m7,this.getDiagramTitle=l.ab,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{(0,l.K2)(this,"FlowDB")}sanitizeText(t){return l.Y2.sanitizeText(t,this.config)}lookUpDomId(t){for(const e of this.vertices.values())if(e.id===t)return e.domId;return t}addVertex(t,e,s,i,r,a,u={},c){if(!t||0===t.trim().length)return;let h;if(void 0!==c){let t;t=c.includes("\n")?c+"\n":"{\n"+c+"\n}",h=(0,n.H)(t,{schema:n.r})}const d=this.edges.find(e=>e.id===t);if(d){const t=h;return void 0!==t?.animate&&(d.animate=t.animate),void(void 0!==t?.animation&&(d.animation=t.animation))}let p,g=this.vertices.get(t);if(void 0===g&&(g={id:t,labelType:"text",domId:"flowchart-"+t+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(t,g)),this.vertexCounter++,void 0!==e?(this.config=(0,l.D7)(),p=this.sanitizeText(e.text.trim()),g.labelType=e.type,p.startsWith('"')&&p.endsWith('"')&&(p=p.substring(1,p.length-1)),g.text=p):void 0===g.text&&(g.text=t),void 0!==s&&(g.type=s),null!=i&&i.forEach(t=>{g.styles.push(t)}),null!=r&&r.forEach(t=>{g.classes.push(t)}),void 0!==a&&(g.dir=a),void 0===g.props?g.props=u:void 0!==u&&Object.assign(g.props,u),void 0!==h){if(h.shape){if(h.shape!==h.shape.toLowerCase()||h.shape.includes("_"))throw new Error(`No such shape: ${h.shape}. Shape names should be lowercase.`);if(!(0,o.aP)(h.shape))throw new Error(`No such shape: ${h.shape}.`);g.type=h?.shape}h?.label&&(g.text=h?.label),h?.icon&&(g.icon=h?.icon,h.label?.trim()||g.text!==t||(g.text="")),h?.form&&(g.form=h?.form),h?.pos&&(g.pos=h?.pos),h?.img&&(g.img=h?.img,h.label?.trim()||g.text!==t||(g.text="")),h?.constraint&&(g.constraint=h.constraint),h.w&&(g.assetWidth=Number(h.w)),h.h&&(g.assetHeight=Number(h.h))}}addSingleLink(t,e,s,i){const n={start:t,end:e,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};l.Rm.info("abc78 Got edge...",n);const r=s.text;if(void 0!==r&&(n.text=this.sanitizeText(r.text.trim()),n.text.startsWith('"')&&n.text.endsWith('"')&&(n.text=n.text.substring(1,n.text.length-1)),n.labelType=r.type),void 0!==s&&(n.type=s.type,n.stroke=s.stroke,n.length=s.length>10?10:s.length),i&&!this.edges.some(t=>t.id===i))n.id=i,n.isUserDefinedId=!0;else{const t=this.edges.filter(t=>t.start===n.start&&t.end===n.end);0===t.length?n.id=(0,c.rY)(n.start,n.end,{counter:0,prefix:"L"}):n.id=(0,c.rY)(n.start,n.end,{counter:t.length+1,prefix:"L"})}if(!(this.edges.length<(this.config.maxEdges??500)))throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.\n\nInitialize mermaid with maxEdges set to a higher number to allow more edges.\nYou cannot set this config via configuration inside the diagram as it is a secure config.\nYou have to call mermaid.initialize.`);l.Rm.info("Pushing edge..."),this.edges.push(n)}isLinkData(t){return null!==t&&"object"==typeof t&&"id"in t&&"string"==typeof t.id}addLink(t,e,s){const i=this.isLinkData(s)?s.id.replace("@",""):void 0;l.Rm.info("addLink",t,e,i);for(const n of t)for(const r of e){const a=n===t[t.length-1],u=r===e[0];a&&u?this.addSingleLink(n,r,s,i):this.addSingleLink(n,r,s,void 0)}}updateLinkInterpolate(t,e){t.forEach(t=>{"default"===t?this.edges.defaultInterpolate=e:this.edges[t].interpolate=e})}updateLink(t,e){t.forEach(t=>{if("number"==typeof t&&t>=this.edges.length)throw new Error(`The index ${t} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);"default"===t?this.edges.defaultStyle=e:(this.edges[t].style=e,(this.edges[t]?.style?.length??0)>0&&!this.edges[t]?.style?.some(t=>t?.startsWith("fill"))&&this.edges[t]?.style?.push("fill:none"))})}addClass(t,e){const s=e.join().replace(/\\,/g,"\xa7\xa7\xa7").replace(/,/g,";").replace(/\xa7\xa7\xa7/g,",").split(";");t.split(",").forEach(t=>{let e=this.classes.get(t);void 0===e&&(e={id:t,styles:[],textStyles:[]},this.classes.set(t,e)),null!=s&&s.forEach(t=>{if(/color/.exec(t)){const s=t.replace("fill","bgFill");e.textStyles.push(s)}e.styles.push(t)})})}setDirection(t){this.direction=t,/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),"TD"===this.direction&&(this.direction="TB")}setClass(t,e){for(const s of t.split(",")){const t=this.vertices.get(s);t&&t.classes.push(e);const i=this.edges.find(t=>t.id===s);i&&i.classes.push(e);const n=this.subGraphLookup.get(s);n&&n.classes.push(e)}}setTooltip(t,e){if(void 0!==e){e=this.sanitizeText(e);for(const s of t.split(","))this.tooltips.set("gen-1"===this.version?this.lookUpDomId(s):s,e)}}setClickFun(t,e,s){const i=this.lookUpDomId(t);if("loose"!==(0,l.D7)().securityLevel)return;if(void 0===e)return;let n=[];if("string"==typeof s){n=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t{const t=document.querySelector(`[id="${i}"]`);null!==t&&t.addEventListener("click",()=>{c._K.runFunc(e,...n)},!1)}))}setLink(t,e,s){t.split(",").forEach(t=>{const i=this.vertices.get(t);void 0!==i&&(i.link=c._K.formatUrl(e,this.config),i.linkTarget=s)}),this.setClass(t,"clickable")}getTooltip(t){return this.tooltips.get(t)}setClickEvent(t,e,s){t.split(",").forEach(t=>{this.setClickFun(t,e,s)}),this.setClass(t,"clickable")}bindFunctions(t){this.funs.forEach(e=>{e(t)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(t){let e=(0,h.Ltv)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,h.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,h.Ltv)(t).select("svg").selectAll("g.node").on("mouseover",t=>{const s=(0,h.Ltv)(t.currentTarget);if(null===s.attr("title"))return;const i=t.currentTarget?.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(s.attr("title")).style("left",window.scrollX+i.left+(i.right-i.left)/2+"px").style("top",window.scrollY+i.bottom+"px"),e.html(e.html().replace(/<br\/>/g," ")),s.classed("hover",!0)}).on("mouseout",t=>{e.transition().duration(500).style("opacity",0);(0,h.Ltv)(t.currentTarget).classed("hover",!1)})}clear(t="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=t,this.config=(0,l.D7)(),(0,l.IU)()}setGen(t){this.version=t||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(t,e,s){let i=t.text.trim(),n=s.text;t===s&&/\s/.exec(s.text)&&(i=void 0);const r=(0,l.K2)(t=>{const e={boolean:{},number:{},string:{}},s=[];let i;return{nodeList:t.filter(function(t){const n=typeof t;return t.stmt&&"dir"===t.stmt?(i=t.value,!1):""!==t.trim()&&(n in e?!e[n].hasOwnProperty(t)&&(e[n][t]=!0):!s.includes(t)&&s.push(t))}),dir:i}},"uniq")(e.flat()),a=r.nodeList;let u=r.dir;const o=(0,l.D7)().flowchart??{};if(u=u??(o.inheritDir?this.getDirection()??(0,l.D7)().direction??void 0:void 0),"gen-1"===this.version)for(let l=0;l2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=e,this.subGraphs[e].id===t)return{result:!0,count:0};let i=0,n=1;for(;i=0){const s=this.indexNodes2(t,e);if(s.result)return{result:!0,count:n+s.count};n+=s.count}i+=1}return{result:!1,count:n}}getDepthFirstPos(t){return this.posCrossRef[t]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return!!this.firstGraphFlag&&(this.firstGraphFlag=!1,!0)}destructStartLink(t){let e=t.trim(),s="arrow_open";switch(e[0]){case"<":s="arrow_point",e=e.slice(1);break;case"x":s="arrow_cross",e=e.slice(1);break;case"o":s="arrow_circle",e=e.slice(1)}let i="normal";return e.includes("=")&&(i="thick"),e.includes(".")&&(i="dotted"),{type:s,stroke:i}}countChar(t,e){const s=e.length;let i=0;for(let n=0;n":i="arrow_point",e.startsWith("<")&&(i="double_"+i,s=s.slice(1));break;case"o":i="arrow_circle",e.startsWith("o")&&(i="double_"+i,s=s.slice(1))}let n="normal",r=s.length-1;s.startsWith("=")&&(n="thick"),s.startsWith("~")&&(n="invisible");const a=this.countChar(".",s);return a&&(n="dotted",r=a),{type:i,stroke:n,length:r}}destructLink(t,e){const s=this.destructEndLink(t);let i;if(e){if(i=this.destructStartLink(e),i.stroke!==s.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===i.type)i.type=s.type;else{if(i.type!==s.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return"double_arrow"===i.type&&(i.type="double_arrow_point"),i.length=s.length,i}return s}exists(t,e){for(const s of t)if(s.nodes.includes(e))return!0;return!1}makeUniq(t,e){const s=[];return t.nodes.forEach((i,n)=>{this.exists(e,i)||s.push(t.nodes[n])}),{nodes:s}}getTypeFromVertex(t){if(t.img)return"imageSquare";if(t.icon)return"circle"===t.form?"iconCircle":"square"===t.form?"iconSquare":"rounded"===t.form?"iconRounded":"icon";switch(t.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return t.type}}findNode(t,e){return t.find(t=>t.id===e)}destructEdgeType(t){let e="none",s="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":s=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":e=t.replace("double_",""),s=e}return{arrowTypeStart:e,arrowTypeEnd:s}}addNodeFromVertex(t,e,s,i,n,r){const a=s.get(t.id),u=i.get(t.id)??!1,o=this.findNode(e,t.id);if(o)o.cssStyles=t.styles,o.cssCompiledStyles=this.getCompiledStyles(t.classes),o.cssClasses=t.classes.join(" ");else{const s={id:t.id,label:t.text,labelStyle:"",parentId:a,padding:n.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),dir:t.dir,domId:t.domId,look:r,link:t.link,linkTarget:t.linkTarget,tooltip:this.getTooltip(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint};u?e.push({...s,isGroup:!0,shape:"rect"}):e.push({...s,isGroup:!1,shape:this.getTypeFromVertex(t)})}}getCompiledStyles(t){let e=[];for(const s of t){const t=this.classes.get(s);t?.styles&&(e=[...e,...t.styles??[]].map(t=>t.trim())),t?.textStyles&&(e=[...e,...t.textStyles??[]].map(t=>t.trim()))}return e}getData(){const t=(0,l.D7)(),e=[],s=[],i=this.getSubGraphs(),n=new Map,r=new Map;for(let u=i.length-1;u>=0;u--){const t=i[u];t.nodes.length>0&&r.set(t.id,!0);for(const e of t.nodes)n.set(e,t.id)}for(let u=i.length-1;u>=0;u--){const s=i[u];e.push({id:s.id,label:s.title,labelStyle:"",parentId:n.get(s.id),padding:8,cssCompiledStyles:this.getCompiledStyles(s.classes),cssClasses:s.classes.join(" "),shape:"rect",dir:s.dir,isGroup:!0,look:t.look})}this.getVertices().forEach(s=>{this.addNodeFromVertex(s,e,n,r,t,t.look||"classic")});const a=this.getEdges();return a.forEach((e,i)=>{const{arrowTypeStart:n,arrowTypeEnd:r}=this.destructEdgeType(e.type),u=[...a.defaultStyle??[]];e.style&&u.push(...e.style);const o={id:(0,c.rY)(e.start,e.end,{counter:i,prefix:"L"},e.id),isUserDefinedId:e.isUserDefinedId,start:e.start,end:e.end,type:e.type??"normal",label:e.text,labelpos:"c",thickness:e.stroke,minlen:e.length,classes:"invisible"===e?.stroke?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:"invisible"===e?.stroke||"arrow_open"===e?.type?"none":n,arrowTypeEnd:"invisible"===e?.stroke||"arrow_open"===e?.type?"none":r,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(e.classes),labelStyle:u,style:u,pattern:e.stroke,look:t.look,animate:e.animate,animation:e.animation,curve:e.interpolate||this.edges.defaultInterpolate||t.flowchart?.curve};s.push(o)}),{nodes:e,edges:s,other:{},config:t}}defaultConfig(){return l.ME.flowchart}},A={getClasses:(0,l.K2)(function(t,e){return e.db.getClasses()},"getClasses"),draw:(0,l.K2)(async function(t,e,s,i){l.Rm.info("REF0:"),l.Rm.info("Drawing state diagram (v2)",e);const{securityLevel:n,flowchart:o,layout:d}=(0,l.D7)();let p;"sandbox"===n&&(p=(0,h.Ltv)("#i"+e));const g="sandbox"===n?p.nodes()[0].contentDocument:document;l.Rm.debug("Before getData: ");const A=i.db.getData();l.Rm.debug("Data: ",A);const b=(0,r.A)(e,n),y=i.db.getDirection();A.type=i.type,A.layoutAlgorithm=(0,u.q7)(d),"dagre"===A.layoutAlgorithm&&"elk"===d&&l.Rm.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),A.direction=y,A.nodeSpacing=o?.nodeSpacing||50,A.rankSpacing=o?.rankSpacing||50,A.markers=["point","circle","cross"],A.diagramId=e,l.Rm.debug("REF1:",A),await(0,u.XX)(A,b);const k=A.config.flowchart?.diagramPadding??8;c._K.insertTitle(b,"flowchartTitleText",o?.titleTopMargin||0,i.db.getDiagramTitle()),(0,a.P)(b,k,"flowchart",o?.useMaxWidth||!1);for(const r of A.nodes){const t=(0,h.Ltv)(`#${e} [id="${r.id}"]`);if(!t||!r.link)continue;const s=g.createElementNS("http://www.w3.org/2000/svg","a");s.setAttributeNS("http://www.w3.org/2000/svg","class",r.cssClasses),s.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===n?s.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):r.linkTarget&&s.setAttributeNS("http://www.w3.org/2000/svg","target",r.linkTarget);const i=t.insert(function(){return s},":first-child"),a=t.select(".label-container");a&&i.append(function(){return a.node()});const u=t.select(".label");u&&i.append(function(){return u.node()})}},"draw")},b=function(){var t=(0,l.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,4],s=[1,3],i=[1,5],n=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],r=[2,2],a=[1,13],u=[1,14],o=[1,15],c=[1,16],h=[1,23],d=[1,25],p=[1,26],g=[1,27],A=[1,49],b=[1,48],y=[1,29],k=[1,30],f=[1,31],m=[1,32],E=[1,33],C=[1,44],D=[1,46],x=[1,42],T=[1,47],S=[1,43],F=[1,50],_=[1,45],B=[1,51],v=[1,52],w=[1,34],L=[1,35],$=[1,36],I=[1,37],R=[1,57],N=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],P=[1,61],G=[1,60],K=[1,62],O=[8,9,11,75,77,78],M=[1,78],U=[1,91],V=[1,96],W=[1,95],Y=[1,92],j=[1,88],z=[1,94],X=[1,90],H=[1,97],q=[1,93],Q=[1,98],Z=[1,89],J=[8,9,10,11,40,75,77,78],tt=[8,9,10,11,40,46,75,77,78],et=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],st=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],it=[44,60,89,102,105,106,109,111,114,115,116],nt=[1,121],rt=[1,122],at=[1,124],ut=[1,123],ot=[44,60,62,74,89,102,105,106,109,111,114,115,116],ct=[1,133],lt=[1,147],ht=[1,148],dt=[1,149],pt=[1,150],gt=[1,135],At=[1,137],bt=[1,141],yt=[1,142],kt=[1,143],ft=[1,144],mt=[1,145],Et=[1,146],Ct=[1,151],Dt=[1,152],xt=[1,131],Tt=[1,132],St=[1,139],Ft=[1,134],_t=[1,138],Bt=[1,136],vt=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],wt=[1,154],Lt=[1,156],$t=[8,9,11],It=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],Rt=[1,176],Nt=[1,172],Pt=[1,173],Gt=[1,177],Kt=[1,174],Ot=[1,175],Mt=[77,116,119],Ut=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],Vt=[10,106],Wt=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],Yt=[1,247],jt=[1,245],zt=[1,249],Xt=[1,243],Ht=[1,244],qt=[1,246],Qt=[1,248],Zt=[1,250],Jt=[1,268],te=[8,9,11,106],ee=[8,9,10,11,60,84,105,106,109,110,111,112],se={trace:(0,l.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1]],performAction:(0,l.K2)(function(t,e,s,i,n,r,a){var u=r.length-1;switch(n){case 2:case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 3:(!Array.isArray(r[u])||r[u].length>0)&&r[u-1].push(r[u]),this.$=r[u-1];break;case 4:case 183:case 44:case 54:case 76:case 181:this.$=r[u];break;case 11:i.setDirection("TB"),this.$="TB";break;case 12:i.setDirection(r[u-1]),this.$=r[u-1];break;case 27:this.$=r[u-1].nodes;break;case 33:this.$=i.addSubGraph(r[u-6],r[u-1],r[u-4]);break;case 34:this.$=i.addSubGraph(r[u-3],r[u-1],r[u-3]);break;case 35:this.$=i.addSubGraph(void 0,r[u-1],void 0);break;case 37:this.$=r[u].trim(),i.setAccTitle(this.$);break;case 38:case 39:this.$=r[u].trim(),i.setAccDescription(this.$);break;case 43:case 133:this.$=r[u-1]+r[u];break;case 45:i.addVertex(r[u-1][r[u-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,r[u]),i.addLink(r[u-3].stmt,r[u-1],r[u-2]),this.$={stmt:r[u-1],nodes:r[u-1].concat(r[u-3].nodes)};break;case 46:i.addLink(r[u-2].stmt,r[u],r[u-1]),this.$={stmt:r[u],nodes:r[u].concat(r[u-2].nodes)};break;case 47:i.addLink(r[u-3].stmt,r[u-1],r[u-2]),this.$={stmt:r[u-1],nodes:r[u-1].concat(r[u-3].nodes)};break;case 48:this.$={stmt:r[u-1],nodes:r[u-1]};break;case 49:i.addVertex(r[u-1][r[u-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,r[u]),this.$={stmt:r[u-1],nodes:r[u-1],shapeData:r[u]};break;case 50:this.$={stmt:r[u],nodes:r[u]};break;case 51:case 128:case 130:this.$=[r[u]];break;case 52:i.addVertex(r[u-5][r[u-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,r[u-4]),this.$=r[u-5].concat(r[u]);break;case 53:this.$=r[u-4].concat(r[u]);break;case 55:this.$=r[u-2],i.setClass(r[u-2],r[u]);break;case 56:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"square");break;case 57:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"doublecircle");break;case 58:this.$=r[u-5],i.addVertex(r[u-5],r[u-2],"circle");break;case 59:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"ellipse");break;case 60:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"stadium");break;case 61:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"subroutine");break;case 62:this.$=r[u-7],i.addVertex(r[u-7],r[u-1],"rect",void 0,void 0,void 0,Object.fromEntries([[r[u-5],r[u-3]]]));break;case 63:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"cylinder");break;case 64:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"round");break;case 65:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"diamond");break;case 66:this.$=r[u-5],i.addVertex(r[u-5],r[u-2],"hexagon");break;case 67:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"odd");break;case 68:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"trapezoid");break;case 69:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"inv_trapezoid");break;case 70:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"lean_right");break;case 71:this.$=r[u-3],i.addVertex(r[u-3],r[u-1],"lean_left");break;case 72:this.$=r[u],i.addVertex(r[u]);break;case 73:r[u-1].text=r[u],this.$=r[u-1];break;case 74:case 75:r[u-2].text=r[u-1],this.$=r[u-2];break;case 77:var o=i.destructLink(r[u],r[u-2]);this.$={type:o.type,stroke:o.stroke,length:o.length,text:r[u-1]};break;case 78:o=i.destructLink(r[u],r[u-2]);this.$={type:o.type,stroke:o.stroke,length:o.length,text:r[u-1],id:r[u-3]};break;case 79:case 86:case 101:case 103:this.$={text:r[u],type:"text"};break;case 80:case 87:case 102:this.$={text:r[u-1].text+""+r[u],type:r[u-1].type};break;case 81:case 88:this.$={text:r[u],type:"string"};break;case 82:case 89:case 104:this.$={text:r[u],type:"markdown"};break;case 83:o=i.destructLink(r[u]);this.$={type:o.type,stroke:o.stroke,length:o.length};break;case 84:o=i.destructLink(r[u]);this.$={type:o.type,stroke:o.stroke,length:o.length,id:r[u-1]};break;case 85:this.$=r[u-1];break;case 105:this.$=r[u-4],i.addClass(r[u-2],r[u]);break;case 106:this.$=r[u-4],i.setClass(r[u-2],r[u]);break;case 107:case 115:this.$=r[u-1],i.setClickEvent(r[u-1],r[u]);break;case 108:case 116:this.$=r[u-3],i.setClickEvent(r[u-3],r[u-2]),i.setTooltip(r[u-3],r[u]);break;case 109:this.$=r[u-2],i.setClickEvent(r[u-2],r[u-1],r[u]);break;case 110:this.$=r[u-4],i.setClickEvent(r[u-4],r[u-3],r[u-2]),i.setTooltip(r[u-4],r[u]);break;case 111:this.$=r[u-2],i.setLink(r[u-2],r[u]);break;case 112:this.$=r[u-4],i.setLink(r[u-4],r[u-2]),i.setTooltip(r[u-4],r[u]);break;case 113:this.$=r[u-4],i.setLink(r[u-4],r[u-2],r[u]);break;case 114:this.$=r[u-6],i.setLink(r[u-6],r[u-4],r[u]),i.setTooltip(r[u-6],r[u-2]);break;case 117:this.$=r[u-1],i.setLink(r[u-1],r[u]);break;case 118:this.$=r[u-3],i.setLink(r[u-3],r[u-2]),i.setTooltip(r[u-3],r[u]);break;case 119:this.$=r[u-3],i.setLink(r[u-3],r[u-2],r[u]);break;case 120:this.$=r[u-5],i.setLink(r[u-5],r[u-4],r[u]),i.setTooltip(r[u-5],r[u-2]);break;case 121:this.$=r[u-4],i.addVertex(r[u-2],void 0,void 0,r[u]);break;case 122:this.$=r[u-4],i.updateLink([r[u-2]],r[u]);break;case 123:this.$=r[u-4],i.updateLink(r[u-2],r[u]);break;case 124:this.$=r[u-8],i.updateLinkInterpolate([r[u-6]],r[u-2]),i.updateLink([r[u-6]],r[u]);break;case 125:this.$=r[u-8],i.updateLinkInterpolate(r[u-6],r[u-2]),i.updateLink(r[u-6],r[u]);break;case 126:this.$=r[u-6],i.updateLinkInterpolate([r[u-4]],r[u]);break;case 127:this.$=r[u-6],i.updateLinkInterpolate(r[u-4],r[u]);break;case 129:case 131:r[u-2].push(r[u]),this.$=r[u-2];break;case 182:case 184:this.$=r[u-1]+""+r[u];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"}}},"anonymous"),table:[{3:1,4:2,9:e,10:s,12:i},{1:[3]},t(n,r,{5:6}),{4:7,9:e,10:s,12:i},{4:8,9:e,10:s,12:i},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:a,9:u,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,33:24,34:d,36:p,38:g,42:28,43:38,44:A,45:39,47:40,60:b,84:y,85:k,86:f,87:m,88:E,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v,121:w,122:L,123:$,124:I},t(n,[2,9]),t(n,[2,10]),t(n,[2,11]),{8:[1,54],9:[1,55],10:R,15:53,18:56},t(N,[2,3]),t(N,[2,4]),t(N,[2,5]),t(N,[2,6]),t(N,[2,7]),t(N,[2,8]),{8:P,9:G,11:K,21:58,41:59,72:63,75:[1,64],77:[1,66],78:[1,65]},{8:P,9:G,11:K,21:67},{8:P,9:G,11:K,21:68},{8:P,9:G,11:K,21:69},{8:P,9:G,11:K,21:70},{8:P,9:G,11:K,21:71},{8:P,9:G,10:[1,72],11:K,21:73},t(N,[2,36]),{35:[1,74]},{37:[1,75]},t(N,[2,39]),t(O,[2,50],{18:76,39:77,10:R,40:M}),{10:[1,79]},{10:[1,80]},{10:[1,81]},{10:[1,82]},{14:U,44:V,60:W,80:[1,86],89:Y,95:[1,83],97:[1,84],101:85,105:j,106:z,109:X,111:H,114:q,115:Q,116:Z,120:87},t(N,[2,185]),t(N,[2,186]),t(N,[2,187]),t(N,[2,188]),t(J,[2,51]),t(J,[2,54],{46:[1,99]}),t(tt,[2,72],{113:112,29:[1,100],44:A,48:[1,101],50:[1,102],52:[1,103],54:[1,104],56:[1,105],58:[1,106],60:b,63:[1,107],65:[1,108],67:[1,109],68:[1,110],70:[1,111],89:C,102:D,105:x,106:T,109:S,111:F,114:_,115:B,116:v}),t(et,[2,181]),t(et,[2,142]),t(et,[2,143]),t(et,[2,144]),t(et,[2,145]),t(et,[2,146]),t(et,[2,147]),t(et,[2,148]),t(et,[2,149]),t(et,[2,150]),t(et,[2,151]),t(et,[2,152]),t(n,[2,12]),t(n,[2,18]),t(n,[2,19]),{9:[1,113]},t(st,[2,26],{18:114,10:R}),t(N,[2,27]),{42:115,43:38,44:A,45:39,47:40,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},t(N,[2,40]),t(N,[2,41]),t(N,[2,42]),t(it,[2,76],{73:116,62:[1,118],74:[1,117]}),{76:119,79:120,80:nt,81:rt,116:at,119:ut},{75:[1,125],77:[1,126]},t(ot,[2,83]),t(N,[2,28]),t(N,[2,29]),t(N,[2,30]),t(N,[2,31]),t(N,[2,32]),{10:ct,12:lt,14:ht,27:dt,28:127,32:pt,44:gt,60:At,75:bt,80:[1,129],81:[1,130],83:140,84:yt,85:kt,86:ft,87:mt,88:Et,89:Ct,90:Dt,91:128,105:xt,109:Tt,111:St,114:Ft,115:_t,116:Bt},t(vt,r,{5:153}),t(N,[2,37]),t(N,[2,38]),t(O,[2,48],{44:wt}),t(O,[2,49],{18:155,10:R,40:Lt}),t(J,[2,44]),{44:A,47:157,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},{102:[1,158],103:159,105:[1,160]},{44:A,47:161,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},{44:A,47:162,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},t($t,[2,107],{10:[1,163],96:[1,164]}),{80:[1,165]},t($t,[2,115],{120:167,10:[1,166],14:U,44:V,60:W,89:Y,105:j,106:z,109:X,111:H,114:q,115:Q,116:Z}),t($t,[2,117],{10:[1,168]}),t(It,[2,183]),t(It,[2,170]),t(It,[2,171]),t(It,[2,172]),t(It,[2,173]),t(It,[2,174]),t(It,[2,175]),t(It,[2,176]),t(It,[2,177]),t(It,[2,178]),t(It,[2,179]),t(It,[2,180]),{44:A,47:169,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},{30:170,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:178,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:180,50:[1,179],67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:181,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:182,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:183,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{109:[1,184]},{30:185,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:186,65:[1,187],67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:188,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:189,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{30:190,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},t(et,[2,182]),t(n,[2,20]),t(st,[2,25]),t(O,[2,46],{39:191,18:192,10:R,40:M}),t(it,[2,73],{10:[1,193]}),{10:[1,194]},{30:195,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{77:[1,196],79:197,116:at,119:ut},t(Mt,[2,79]),t(Mt,[2,81]),t(Mt,[2,82]),t(Mt,[2,168]),t(Mt,[2,169]),{76:198,79:120,80:nt,81:rt,116:at,119:ut},t(ot,[2,84]),{8:P,9:G,10:ct,11:K,12:lt,14:ht,21:200,27:dt,29:[1,199],32:pt,44:gt,60:At,75:bt,83:140,84:yt,85:kt,86:ft,87:mt,88:Et,89:Ct,90:Dt,91:201,105:xt,109:Tt,111:St,114:Ft,115:_t,116:Bt},t(Ut,[2,101]),t(Ut,[2,103]),t(Ut,[2,104]),t(Ut,[2,157]),t(Ut,[2,158]),t(Ut,[2,159]),t(Ut,[2,160]),t(Ut,[2,161]),t(Ut,[2,162]),t(Ut,[2,163]),t(Ut,[2,164]),t(Ut,[2,165]),t(Ut,[2,166]),t(Ut,[2,167]),t(Ut,[2,90]),t(Ut,[2,91]),t(Ut,[2,92]),t(Ut,[2,93]),t(Ut,[2,94]),t(Ut,[2,95]),t(Ut,[2,96]),t(Ut,[2,97]),t(Ut,[2,98]),t(Ut,[2,99]),t(Ut,[2,100]),{6:11,7:12,8:a,9:u,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,32:[1,202],33:24,34:d,36:p,38:g,42:28,43:38,44:A,45:39,47:40,60:b,84:y,85:k,86:f,87:m,88:E,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v,121:w,122:L,123:$,124:I},{10:R,18:203},{44:[1,204]},t(J,[2,43]),{10:[1,205],44:A,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:112,114:_,115:B,116:v},{10:[1,206]},{10:[1,207],106:[1,208]},t(Vt,[2,128]),{10:[1,209],44:A,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:112,114:_,115:B,116:v},{10:[1,210],44:A,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:112,114:_,115:B,116:v},{80:[1,211]},t($t,[2,109],{10:[1,212]}),t($t,[2,111],{10:[1,213]}),{80:[1,214]},t(It,[2,184]),{80:[1,215],98:[1,216]},t(J,[2,55],{113:112,44:A,60:b,89:C,102:D,105:x,106:T,109:S,111:F,114:_,115:B,116:v}),{31:[1,217],67:Rt,82:218,116:Gt,117:Kt,118:Ot},t(Wt,[2,86]),t(Wt,[2,88]),t(Wt,[2,89]),t(Wt,[2,153]),t(Wt,[2,154]),t(Wt,[2,155]),t(Wt,[2,156]),{49:[1,219],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{30:220,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{51:[1,221],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{53:[1,222],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{55:[1,223],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{57:[1,224],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{60:[1,225]},{64:[1,226],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{66:[1,227],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{30:228,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},{31:[1,229],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{67:Rt,69:[1,230],71:[1,231],82:218,116:Gt,117:Kt,118:Ot},{67:Rt,69:[1,233],71:[1,232],82:218,116:Gt,117:Kt,118:Ot},t(O,[2,45],{18:155,10:R,40:Lt}),t(O,[2,47],{44:wt}),t(it,[2,75]),t(it,[2,74]),{62:[1,234],67:Rt,82:218,116:Gt,117:Kt,118:Ot},t(it,[2,77]),t(Mt,[2,80]),{77:[1,235],79:197,116:at,119:ut},{30:236,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},t(vt,r,{5:237}),t(Ut,[2,102]),t(N,[2,35]),{43:238,44:A,45:39,47:40,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},{10:R,18:239},{10:Yt,60:jt,84:zt,92:240,105:Xt,107:241,108:242,109:Ht,110:qt,111:Qt,112:Zt},{10:Yt,60:jt,84:zt,92:251,104:[1,252],105:Xt,107:241,108:242,109:Ht,110:qt,111:Qt,112:Zt},{10:Yt,60:jt,84:zt,92:253,104:[1,254],105:Xt,107:241,108:242,109:Ht,110:qt,111:Qt,112:Zt},{105:[1,255]},{10:Yt,60:jt,84:zt,92:256,105:Xt,107:241,108:242,109:Ht,110:qt,111:Qt,112:Zt},{44:A,47:257,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},t($t,[2,108]),{80:[1,258]},{80:[1,259],98:[1,260]},t($t,[2,116]),t($t,[2,118],{10:[1,261]}),t($t,[2,119]),t(tt,[2,56]),t(Wt,[2,87]),t(tt,[2,57]),{51:[1,262],67:Rt,82:218,116:Gt,117:Kt,118:Ot},t(tt,[2,64]),t(tt,[2,59]),t(tt,[2,60]),t(tt,[2,61]),{109:[1,263]},t(tt,[2,63]),t(tt,[2,65]),{66:[1,264],67:Rt,82:218,116:Gt,117:Kt,118:Ot},t(tt,[2,67]),t(tt,[2,68]),t(tt,[2,70]),t(tt,[2,69]),t(tt,[2,71]),t([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),t(it,[2,78]),{31:[1,265],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{6:11,7:12,8:a,9:u,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,32:[1,266],33:24,34:d,36:p,38:g,42:28,43:38,44:A,45:39,47:40,60:b,84:y,85:k,86:f,87:m,88:E,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v,121:w,122:L,123:$,124:I},t(J,[2,53]),{43:267,44:A,45:39,47:40,60:b,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v},t($t,[2,121],{106:Jt}),t(te,[2,130],{108:269,10:Yt,60:jt,84:zt,105:Xt,109:Ht,110:qt,111:Qt,112:Zt}),t(ee,[2,132]),t(ee,[2,134]),t(ee,[2,135]),t(ee,[2,136]),t(ee,[2,137]),t(ee,[2,138]),t(ee,[2,139]),t(ee,[2,140]),t(ee,[2,141]),t($t,[2,122],{106:Jt}),{10:[1,270]},t($t,[2,123],{106:Jt}),{10:[1,271]},t(Vt,[2,129]),t($t,[2,105],{106:Jt}),t($t,[2,106],{113:112,44:A,60:b,89:C,102:D,105:x,106:T,109:S,111:F,114:_,115:B,116:v}),t($t,[2,110]),t($t,[2,112],{10:[1,272]}),t($t,[2,113]),{98:[1,273]},{51:[1,274]},{62:[1,275]},{66:[1,276]},{8:P,9:G,11:K,21:277},t(N,[2,34]),t(J,[2,52]),{10:Yt,60:jt,84:zt,105:Xt,107:278,108:242,109:Ht,110:qt,111:Qt,112:Zt},t(ee,[2,133]),{14:U,44:V,60:W,89:Y,101:279,105:j,106:z,109:X,111:H,114:q,115:Q,116:Z,120:87},{14:U,44:V,60:W,89:Y,101:280,105:j,106:z,109:X,111:H,114:q,115:Q,116:Z,120:87},{98:[1,281]},t($t,[2,120]),t(tt,[2,58]),{30:282,67:Rt,80:Nt,81:Pt,82:171,116:Gt,117:Kt,118:Ot},t(tt,[2,66]),t(vt,r,{5:283}),t(te,[2,131],{108:269,10:Yt,60:jt,84:zt,105:Xt,109:Ht,110:qt,111:Qt,112:Zt}),t($t,[2,126],{120:167,10:[1,284],14:U,44:V,60:W,89:Y,105:j,106:z,109:X,111:H,114:q,115:Q,116:Z}),t($t,[2,127],{120:167,10:[1,285],14:U,44:V,60:W,89:Y,105:j,106:z,109:X,111:H,114:q,115:Q,116:Z}),t($t,[2,114]),{31:[1,286],67:Rt,82:218,116:Gt,117:Kt,118:Ot},{6:11,7:12,8:a,9:u,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,32:[1,287],33:24,34:d,36:p,38:g,42:28,43:38,44:A,45:39,47:40,60:b,84:y,85:k,86:f,87:m,88:E,89:C,102:D,105:x,106:T,109:S,111:F,113:41,114:_,115:B,116:v,121:w,122:L,123:$,124:I},{10:Yt,60:jt,84:zt,92:288,105:Xt,107:241,108:242,109:Ht,110:qt,111:Qt,112:Zt},{10:Yt,60:jt,84:zt,92:289,105:Xt,107:241,108:242,109:Ht,110:qt,111:Qt,112:Zt},t(tt,[2,62]),t(N,[2,33]),t($t,[2,124],{106:Jt}),t($t,[2,125],{106:Jt})],defaultActions:{},parseError:(0,l.K2)(function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)},"parseError"),parse:(0,l.K2)(function(t){var e=this,s=[0],i=[],n=[null],r=[],a=this.table,u="",o=0,c=0,h=0,d=r.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(g.yy[A]=this.yy[A]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;r.push(b);var y=p.options&&p.options.ranges;function k(){var t;return"number"!=typeof(t=i.pop()||p.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K2)(function(t){s.length=s.length-2*t,n.length=n.length-t,r.length=r.length-t},"popStack"),(0,l.K2)(k,"lex");for(var f,m,E,C,D,x,T,S,F,_={};;){if(E=s[s.length-1],this.defaultActions[E]?C=this.defaultActions[E]:(null==f&&(f=k()),C=a[E]&&a[E][f]),void 0===C||!C.length||!C[0]){var B="";for(x in F=[],a[E])this.terminals_[x]&&x>2&&F.push("'"+this.terminals_[x]+"'");B=p.showPosition?"Parse error on line "+(o+1)+":\n"+p.showPosition()+"\nExpecting "+F.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(B,{text:p.match,token:this.terminals_[f]||f,line:p.yylineno,loc:b,expected:F})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E+", token: "+f);switch(C[0]){case 1:s.push(f),n.push(p.yytext),r.push(p.yylloc),s.push(C[1]),f=null,m?(f=m,m=null):(c=p.yyleng,u=p.yytext,o=p.yylineno,b=p.yylloc,h>0&&h--);break;case 2:if(T=this.productions_[C[1]][1],_.$=n[n.length-T],_._$={first_line:r[r.length-(T||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(T||1)].first_column,last_column:r[r.length-1].last_column},y&&(_._$.range=[r[r.length-(T||1)].range[0],r[r.length-1].range[1]]),void 0!==(D=this.performAction.apply(_,[u,c,o,g.yy,C[1],n,r].concat(d))))return D;T&&(s=s.slice(0,-1*T*2),n=n.slice(0,-1*T),r=r.slice(0,-1*T)),s.push(this.productions_[C[1]][0]),n.push(_.$),r.push(_._$),S=a[s[s.length-2]][s[s.length-1]],s.push(S);break;case 3:return!0}}return!0},"parse")},ie=function(){return{EOF:1,parseError:(0,l.K2)(function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},"parseError"),setInput:(0,l.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,l.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,l.K2)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K2)(function(){return this._more=!0,this},"more"),reject:(0,l.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,l.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K2)(function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,l.K2)(function(t,e){var s,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1},"test_match"),next:(0,l.K2)(function(){if(this.done)return this.EOF;var t,e,s,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;re[0].length)){if(e=s,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,n[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,l.K2)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,l.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,l.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,l.K2)(function(t,e,s,i){switch(s){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 12:case 14:case 17:case 20:case 23:case 33:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),e.yytext="",40;case 8:return this.pushState("shapeDataStr"),40;case 9:return this.popState(),40;case 10:const s=/\n\s*/g;return e.yytext=e.yytext.replace(s," "),40;case 11:return 40;case 13:this.begin("callbackname");break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 18:return 96;case 19:return"MD_STR";case 21:this.begin("md_string");break;case 22:return"STR";case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 34:return 88;case 35:case 36:case 37:return t.lex.firstGraph()&&this.begin("dir"),12;case 38:return 27;case 39:return 32;case 40:case 41:case 42:case 43:return 98;case 44:return this.popState(),13;case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:return this.popState(),14;case 55:return 121;case 56:return 122;case 57:return 123;case 58:return 124;case 59:return 78;case 60:return 105;case 61:case 102:return 111;case 62:return 46;case 63:return 60;case 64:case 103:return 44;case 65:return 8;case 66:return 106;case 67:case 101:return 115;case 68:case 71:case 74:return this.popState(),77;case 69:return this.pushState("edgeText"),75;case 70:case 73:case 76:return 119;case 72:return this.pushState("thickEdgeText"),75;case 75:return this.pushState("dottedEdgeText"),75;case 77:return 77;case 78:return this.popState(),53;case 79:case 115:return"TEXT";case 80:return this.pushState("ellipseText"),52;case 81:return this.popState(),55;case 82:return this.pushState("text"),54;case 83:return this.popState(),57;case 84:return this.pushState("text"),56;case 85:return 58;case 86:return this.pushState("text"),67;case 87:return this.popState(),64;case 88:return this.pushState("text"),63;case 89:return this.popState(),49;case 90:return this.pushState("text"),48;case 91:return this.popState(),69;case 92:return this.popState(),71;case 93:return 117;case 94:return this.pushState("trapText"),68;case 95:return this.pushState("trapText"),70;case 96:return 118;case 97:return 67;case 98:return 90;case 99:return"SEP";case 100:return 89;case 104:return 109;case 105:return 114;case 106:return 116;case 107:return this.popState(),62;case 108:return this.pushState("text"),62;case 109:return this.popState(),51;case 110:return this.pushState("text"),50;case 111:return this.popState(),31;case 112:return this.pushState("text"),29;case 113:return this.popState(),66;case 114:return this.pushState("text"),65;case 116:return"QUOTE";case 117:return 9;case 118:return 10;case 119:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},shapeData:{rules:[8,11,12,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},callbackargs:{rules:[17,18,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},callbackname:{rules:[14,15,16,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},href:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},click:{rules:[21,24,33,34,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},dottedEdgeText:{rules:[21,24,74,76,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},thickEdgeText:{rules:[21,24,71,73,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},edgeText:{rules:[21,24,68,70,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},trapText:{rules:[21,24,77,80,82,84,88,90,91,92,93,94,95,108,110,112,114],inclusive:!1},ellipseText:{rules:[21,24,77,78,79,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},text:{rules:[21,24,77,80,81,82,83,84,87,88,89,90,94,95,107,108,109,110,111,112,113,114,115],inclusive:!1},vertex:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_descr:{rules:[3,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_title:{rules:[1,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},md_string:{rules:[19,20,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},string:{rules:[21,22,23,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,74,75,77,80,82,84,85,86,88,90,94,95,96,97,98,99,100,101,102,103,104,105,106,108,110,112,114,116,117,118,119],inclusive:!0}}}}();function ne(){this.yy={}}return se.lexer=ie,(0,l.K2)(ne,"Parser"),ne.prototype=se,se.Parser=ne,new ne}();b.parser=b;var y=b,k=Object.assign({},y);k.parse=t=>{const e=t.replace(/}\s*\n/g,"}\n");return y.parse(e)};var f=k,m=(0,l.K2)((t,e)=>{const s=d.A,i=s(t,"r"),n=s(t,"g"),r=s(t,"b");return p.A(i,n,r,e)},"fade"),E=(0,l.K2)(t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n .cluster-label span p {\n background-color: transparent;\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .katex path {\n fill: #000;\n stroke: #000;\n stroke-width: 1px;\n }\n\n .rough-node .label,.node .label, .image-shape .label, .icon-shape .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n\n .root .anchor path {\n fill: ${t.lineColor} !important;\n stroke-width: 0;\n stroke: ${t.lineColor};\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n p {\n background-color: ${t.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${m(t.edgeLabelBackground,.5)};\n // background-color:\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n\n rect.text {\n fill: none;\n stroke-width: 0;\n }\n\n .icon-shape, .image-shape {\n background-color: ${t.edgeLabelBackground};\n p {\n background-color: ${t.edgeLabelBackground};\n padding: 2px;\n }\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n ${(0,i.o)()}\n`,"getStyles"),C={parser:f,get db(){return new g},renderer:A,styles:E,init:(0,l.K2)(t=>{t.flowchart||(t.flowchart={}),t.layout&&(0,l.XV)({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,(0,l.XV)({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}})},"init")}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/34a97add.c100c6df.js b/docs/assets/js/34a97add.c100c6df.js
deleted file mode 100644
index c7183c0..0000000
--- a/docs/assets/js/34a97add.c100c6df.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[7036],{3511:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>a});const l=JSON.parse('{"id":"\u7b2c\u4e94\u7ae0/nf1.21ep5","title":"\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)","description":"\u63d0\u793a","source":"@site/tutorial/5-\u7b2c\u4e94\u7ae0/index.md","sourceDirName":"5-\u7b2c\u4e94\u7ae0","slug":"/nf1.21/ep5","permalink":"/docs/tutorial/nf1.21/ep5","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep5","slug":"/nf1.21/ep5"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)","permalink":"/docs/tutorial/nf1.21/ep4"},"next":{"title":"\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa","permalink":"/docs/tutorial/nf1.21/additions/NotThatAccess"}}');var c=t(4848),r=t(8453);const i={id:"nf1.21ep5",slug:"/nf1.21/ep5"},o="\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)",s={},a=[{value:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53",id:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53",level:2},{value:"\u65b9\u5757\u7684\u6ce8\u518c",id:"\u65b9\u5757\u7684\u6ce8\u518c",level:3},{value:"\u65b9\u5757\u5c5e\u6027",id:"\u65b9\u5757\u5c5e\u6027",level:3},{value:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757",id:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757",level:3},{value:"\u65b9\u5757\u72b6\u6001",id:"\u65b9\u5757\u72b6\u6001",level:3},{value:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757",id:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757",level:2},{value:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c",id:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c",level:3},{value:"\u65b9\u5757\u5b9e\u4f53\u7c7b",id:"\u65b9\u5757\u5b9e\u4f53\u7c7b",level:3}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.header,{children:(0,c.jsx)(n.h1,{id:"\u7b2c\u4e94\u7ae0-\u7b2c\u4e00\u4e2a\u65b9\u5757block",children:"\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)"})}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:[":information","_source:",(0,c.jsx)(n.strong,{children:"\u63d0\u793a"})]}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u8fd9\u91cc\uff0c\u6211\u5c06\u5c3d\u91cf\u8be6\u7ec6\u7684\u5bf9\u5199\u7684\u6bcf\u4e00\u6bb5\u4ee3\u7801\u8fdb\u884c\u8bb2\u89e3\uff0c\u4ee5\u8ba9\u4f60\u5bf9\u81ea\u5df1\u5230\u5e95\u5728\u5199\u4ec0\u4e48\u6709\u5145\u5206\u7684\u4e86\u89e3\uff0c\u800c\u4e0d\u662f\u4ec5\u4ec5\u7684\u8fd9\u91cc\u5e94\u8be5\u8fd9\u6837\u5199\u3002"}),"\n"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:[":information","_source:",(0,c.jsx)(n.strong,{children:"\u63d0\u793a"})]}),"\n",(0,c.jsx)(n.p,{children:"\u672c\u7ae0\u4e3a\u5408\u4f5c\u8005\u63d0\u4f9b\uff0c\u4f5c\u8005: yhz_cake"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53",children:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53"}),"\n",(0,c.jsxs)(n.p,{children:["\u5728Minecraft\u4e2d\uff0c\u65b9\u5757\u6240\u4ee3\u8868\u7684\u5e76\u975e\u65b9\u5757\u672c\u8eab\uff0c\u800c\u662f\u5305\u542b\u4e86**\u65b9\u5757(Block)",(0,c.jsx)(n.strong,{children:"\u548c"}),"\u65b9\u5757\u5b9e\u4f53(Block Entity)**\u4e24\u90e8\u5206\u3002\u6700\u7b80\u5355\u7684\u77f3\u5934(Stone)\uff0c\u6ce5\u571f(Dirt)\u7b49\u65b9\u5757\uff0c\u5c31\u662f\u666e\u901a\u7684\u65b9\u5757\uff0c\u5b83\u4eec\u4e0d\u5305\u542b\u65b9\u5757\u5b9e\u4f53\uff0c\u800c\u5de5\u4f5c\u53f0(Crafting Table)\u3001\u7194\u7089(Furnace)\u7b49\uff0c\u5c31\u540c\u65f6\u5305\u542b\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53\u4e24\u90e8\u5206\u3002"]}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u7684\u6ce8\u518c",children:"\u65b9\u5757\u7684\u6ce8\u518c"}),"\n",(0,c.jsx)(n.p,{children:"\u73b0\u5728\u6211\u4eec\u77e5\u9053\u4e86\u6ce8\u518c\u7684\u57fa\u672c\u6d41\u7a0b\uff0c\u73b0\u5728\u6211\u4eec\u6765\u770b\u770b\u65b9\u5757\u7684\u6ce8\u518c\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'//Blocks\u7c7b\npublic static final Block DIRT = register("dirt", new Block(BlockBehaviour.Properties.of().mapColor(MapColor.DIRT).strength(0.5F).sound(SoundType.GRAVEL)));\n'})}),"\n",(0,c.jsxs)(n.p,{children:["\u8fd9\u662f\u539f\u7248\u4e2d\u6ce5\u571f\u7684\u6ce8\u518c\u4ee3\u7801\uff0c\u58f0\u660e\u4e86\u4e00\u4e2a",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u7684\u5e38\u91cf",(0,c.jsx)(n.code,{children:"DIRT"}),"\u3002",(0,c.jsx)(n.code,{children:"register"}),"\u662f",(0,c.jsx)(n.code,{children:"Blocks"}),"\u7c7b\u5b9a\u4e49\u7684\u65b9\u6cd5\uff0c\u7528\u6765\u5728\u6ce8\u518c\u8868\u6ce8\u518c\u65b9\u5757\u7c7b\u3002\u4f46\u662f\u6211\u4eec\u4f7f\u7528neoforge\u8fdb\u884cmodding\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5728\u5f88\u591a\u7684\u60c5\u51b5\u4e0b\u539f\u7248\u7684\u4ee3\u7801\u662f",(0,c.jsx)(n.code,{children:"private"}),"\u7684\uff0c\u65e0\u6cd5\u76f4\u63a5\u4f7f\u7528\u3002\u56e0\u6b64neoforge\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7c7b\u7528\u6765\u4e13\u95e8\u8fdb\u884c\u6ce8\u518c\uff0c\u5305\u62ec\u5bf9\u539f\u7248\u7684\u6ce8\u518c\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'public static final DeferredBlock TEST_BLOCK = registerBlocks("test_block", () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT)));\n'})}),"\n",(0,c.jsxs)(n.p,{children:["\u53ef\u4ee5\u770b\u5230\u4f7f\u7528\u4e0a\u8ddf\u539f\u7248\u662f\u4e00\u81f4\u7684\uff08\u5373\u4f7f\u5728\u5b9e\u73b0\u4e0a\u5b58\u5728\u4e0d\u5c0f\u7684\u533a\u522b\uff09\u3002\u6240\u6709\u8ddf\u539f\u7248\u76f8\u5173\u7684\u6ce8\u518c\u8868\u90fd\u53ef\u4ee5\u641c\u7d22",(0,c.jsx)(n.code,{children:"Deferred"}),"\u6765\u67e5\u627e\uff0c\u540e\u9762\u4e5f\u4f1a\u518d\u6b21\u63d0\u5230\u3002"]}),"\n",(0,c.jsxs)(n.p,{children:["\u5176\u4e2d\u7684",(0,c.jsx)(n.code,{children:"registerBlocks"}),"\u662f\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u65b9\u6cd5\uff0c\u4e3b\u8981\u7528\u6765\u76f4\u63a5\u6ce8\u518c\u65b9\u5757\u5bf9\u5e94\u7684\u7269\u54c1\uff0c\u56e0\u4e3a\u53ea\u6ce8\u518c\u4e86\u65b9\u5757\u6211\u4eec\u662f\u65e0\u6cd5\u5728\u6e38\u620f\u4e2d\u6b63\u5e38\u4f7f\u7528\u7684\uff0c\u6211\u4eec\u6ca1\u6709\u5bf9\u5e94\u7684\u7269\u54c1\u53bb\u653e\u7f6e\u8fd9\u4e2a\u65b9\u5757\u3002\u5982\u679c\u4f60\u60f3\u8981\u5f97\u5230\u4e00\u4e2a\u7b80\u5355\u7684\u5bf9\u5e94\u65b9\u5757\u7684\u7269\u54c1\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u7528\u8fd9\u6837\u7684\u65b9\u6cd5\u8fdb\u884c\u7b80\u5316\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"//ModBlocks\u7c7b\nprivate static void registerBlockItems(String name, DeferredBlock block) {\n ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties()));\n}\n\nprivate static DeferredBlock registerBlocks(String name, Supplier block) {\n DeferredBlock blocks = BLOCKS.register(name, block);\n registerBlockItems(name, blocks);\n return blocks;\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5f53\u7136\u5982\u679c\u4f60\u5bf9\u4e8e\u65b9\u5757\u5bf9\u5e94\u7684\u7269\u54c1\u6709\u989d\u5916\u7684\u60f3\u6cd5\u548c\u8bbe\u8ba1\uff0c\u53c2\u8003\u8fd9\u4e2a\u65b9\u6cd5\u4e5f\u53ef\u4ee5\u53ea\u5355\u72ec\u7684\u6ce8\u518c\u65b9\u5757\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e0d\u8fc7\u4f60\u8fd8\u9700\u8981\u6ce8\u610f\u6ce8\u518c\u8868\u9700\u8981\u624b\u52a8\u6dfb\u52a0\u8fdbEventBus\u4e2d\uff0c\u6765\u8ba9neoforge\u660e\u767d\u8fd9\u91cc\u6709\u4e00\u4e2a\u6ce8\u518c\u8868\u9700\u8981\u8fdb\u884c\u6ce8\u518c\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"//\u4f60\u7684\u65b9\u5757\u6ce8\u518c\u7c7b{ModBlocks}\npublic static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Example_Mod.MOD_ID);\n...//\u8fd9\u91cc\u53ef\u4ee5\u6dfb\u52a0\u4f60\u7684\u6ce8\u518c\u903b\u8f91\n\npublic static void register(IEventBus eventBus) {\n BLOCKS.register(eventBus);\n}\n\n//\u4f60\u7684\u6a21\u7ec4\u4e3b\u7c7b{Example_Mod}\npublic Example_Mod(IEventBus modEventBus, ModContainer modContainer) {\n ...\n ModBlocks.register(modEventBus);\n ...\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u8fd9\u6837\u5c31\u5b8c\u6210\u4e86\u4e00\u4e2a\u7b80\u5355\u65b9\u5757\u7684\u6ce8\u518c\u3002"}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u5c5e\u6027",children:"\u65b9\u5757\u5c5e\u6027"}),"\n",(0,c.jsxs)(n.p,{children:["\u4e0d\u8fc7\u4f60\u53ef\u80fd\u4f1a\u597d\u5947\uff0c",(0,c.jsx)(n.code,{children:"BlockBehaviour.Properties"}),"\u662f\u7528\u6765\u5e72\u4ec0\u4e48\u7684\uff1f"]}),"\n",(0,c.jsxs)(n.p,{children:["\u8fd9\u5176\u5b9e\u5c31\u76f8\u5f53\u4e8e\u65b9\u5757\u7684\u5c5e\u6027\uff0c\u65b9\u5757\u7684\u786c\u5ea6\uff0c\u7206\u70b8\u6297\u6027\u7b49\u7b49\uff0c\u90fd\u662f\u7531",(0,c.jsx)(n.code,{children:"Properties"}),"\u63a7\u5236\u7684\uff0c\u5177\u4f53\u7684\u53ef\u4ee5\u5728",(0,c.jsx)(n.code,{children:"BlockBehaviour.Properties"}),"\u7c7b\u91cc\u81ea\u884c\u67e5\u770b\uff0c\u8fd9\u91cc\u5c31\u4e0d\u4f5c\u8fc7\u591a\u4ecb\u7ecd\u4e86\u3002"]}),"\n",(0,c.jsx)(n.h3,{id:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757",children:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757"}),"\n",(0,c.jsxs)(n.p,{children:["\u73b0\u5728\uff0c\u4f60\u60f3\u8981\u5b8c\u6210\u4e00\u4e2a\u4f1f\u5927\u7684\u4f7f\u547d\uff0c\u60f3\u8981\u5728Minecraft\u4e2d\u6dfb\u52a0\u7ad6\u534a\u7816\uff01\u8fd9\u662f\u4e00\u4e2a\u524d\u6240\u672a\u6709\u7684\u4f1f\u5927\u4e8b\u4e1a\uff0c\u4ee5\u81f3\u4e8e\u539f\u7248\u7684",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u6839\u672c\u65e0\u6cd5\u652f\u6301\u8fd9\u9879\u4efb\u52a1\uff0c\u56e0\u6b64\u4f60\u9700\u8981\u5bf9",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u8fdb\u884c\u4fee\u6539\u3002\u4f46\u662f\u76f4\u63a5\u4fee\u6539\u539f\u7248\u7684",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u5f88\u663e\u7136\u662f\u6781\u5176\u611a\u8822\u4e14\u4e0d\u4f18\u96c5\u7684\uff0c\u5176\u5b9e\u6211\u4eec\u53ea\u9700\u8981",(0,c.jsx)(n.strong,{children:"\u7ee7\u627f"}),(0,c.jsx)(n.code,{children:"Block"}),'\u7c7b\u5c31\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u65b9\u5757\u7c7b\u800c\u4e0d\u9700\u8981"\u4fee\u6539"',(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u3002"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"public class ExampleBlock extends Block {\n public ExampleBlock(Properties properties) {\n super(properties);\n ...\n }\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684\u53ef\u4ee5\u4fee\u6539\u7684\u65b9\u6cd5\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'@Override\npublic VoxelShape getShape(BlockState state, BlockGetter getter, BlockPos pos, CollisionContext context) {\n //\u6b64\u9879\u63a7\u5236\u65b9\u5757\u7684\u78b0\u649e\u7bb1\uff0c\u4e5f\u5c31\u662f\u8fd9\u4e2a\u65b9\u5757\u5b9e\u9645\u7684"\u5360\u5730\u9762\u79ef"\n //\u4e00\u4e2a\u4e0d\u80fd\u6362\u65b9\u5411\u7684\u534a\u7816\n return Block.box(0, 0, 0, 8, 16, 16);\n}\n\n//\u539f\u7248\u7684\u7f16\u89e3\u7801\u5668\u5199\u6cd5\uff0c\u6b64\u5904\u53ef\u501f\u9274\npublic static final MapCodec CODEC = simpleCodec(ExampleBlock::new);\n\n@Override\nprotected MapCodec extends ExampleBlock> codec() {\n //\u7f16\u89e3\u7801\u5668\uff0c\u7528\u4e8e\u7f16\u89e3\u7801json\u4e0enbt\n return CODEC;\n}\n\n@Override\npublic RenderShape getRenderShape(BlockState state) {\n //RenderShape\u662f\u4e00\u4e2a\u679a\u4e3e\u7c7b\uff0c\u4e00\u5171\u6709\u4e09\u79cd\u6a21\u578b\u7c7b\u578b\n //MODEL\u5c31\u662f\u6b63\u5e38\u7684\u65b9\u5757\u6a21\u578b\uff0c\u4e00\u822c\u90fd\u7528\u8fd9\u4e2a\n //ENTITYBLOCK_ANIMATED\u662f\u65b9\u5757\u5b9e\u4f53\u52a8\u753b\uff0c\u6bd4\u5982\u7bb1\u5b50\n //INVISIBLE\u662f\u4e0d\u53ef\u89c1\uff0c\u5b57\u9762\u610f\u601d\n return RenderShape.MODEL;\n}\n\n@Override\npublic void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) {\n //\u6839\u636e\u653e\u7f6e\u6240\u4f7f\u7528\u7684\u7269\u54c1\u6765\u505a\u51fa\u6539\u53d8\n super.setPlacedBy(level, pos, state, placer, stack);\n}\n\n@Override\npublic void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) {\n //\u5728\u79fb\u9664\u65f6\u6267\u884c\u7684\u65b9\u6cd5\n super.onRemove(state, level, pos, newState, isMoving);\n}\n\n@Override\npublic ItemStack getCloneItemStack(BlockState state, HitResult target, LevelReader level, BlockPos pos, Player player) {\n //\u4e2d\u952e\u83b7\u53d6\u7684\u7269\u54c1\n}\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u73b0\u5728\u518d\u5728\u65b9\u5757\u6ce8\u518c\u7c7b\u4e2d\u6ce8\u518c\uff0c\u5c31\u53ef\u4ee5\u5728\u6e38\u620f\u4e2d\u770b\u5230\u4f60\u7684\u65b0\u65b9\u5757\u4e86\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'public static final DeferredBlock EXAMPLE_BLOCK = registerBlocks("example_block", () -> new ExampleBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT)));\n'})}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u72b6\u6001",children:"\u65b9\u5757\u72b6\u6001"}),"\n",(0,c.jsxs)(n.p,{children:['\u867d\u7136\u5728\u521a\u521a\u6211\u4eec\u7b80\u5355\u7684\u5199\u4e86\u4e00\u4e2a\u7ad6\u534a\u7816\uff0c\u4f46\u662f\u5b83\u53ea\u80fd\u5728\u4e00\u4e2a\u4f4d\u7f6e\uff0c\u8fd9\u663e\u7136\u8ddf\u6211\u4eec\u7684\u6784\u60f3\u662f\u4e0d\u7b26\u5408\u7684\uff0c\u663e\u7136\u6211\u4eec\u9700\u8981\u8ba9\u5b83\u80fd\u591f"\u65cb\u8f6c"\u3002\u8fd9\u5c31\u9700\u8981\u4f7f\u7528\u5230',(0,c.jsx)(n.strong,{children:"\u65b9\u5757\u72b6\u6001"}),"\uff0c\u901a\u8fc7\u8bc6\u522b\u5728\u653e\u7f6e\u65f6\u7684\u4fe1\u606f\u6765\u8ba9\u7ad6\u534a\u7816\u7b26\u5408\u6211\u4eec\u7684\u9884\u671f\u3002"]}),"\n",(0,c.jsx)(n.p,{children:"\u4e0b\u9762\u662f\u539f\u7248\u4e2d\u5e26\u91c9\u9676\u74e6\u7684\u65b9\u5757\u72b6\u6001\u4ee3\u7801\uff0c\u53ef\u4ee5\u7ed9\u6211\u4eec\u4e00\u4e9b\u7075\u611f\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"//\u521b\u5efa\u4e00\u4e2a\u53ea\u5728\u6c34\u5e73\u65b9\u5411\u53d8\u5316\u7684\u65b9\u5411\u72b6\u6001\uff0c\u5173\u4e8e\u5982\u4f55\u521b\u5efa\u81ea\u5b9a\u4e49\u7684\u65b9\u5757\u72b6\u6001\u6807\u7b7e\u8bf7\u53c2\u8003BlockStateProperties\npublic static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;\n\n@Override\nprotected void createBlockStateDefinition(StateDefinition.Builder builder) {\n //\u4e3a\u65b9\u5757\u6dfb\u52a0\u65b9\u5757\u72b6\u6001\u7684\u6807\u7b7e\n builder.add(FACING);\n}\n\n@Override\npublic BlockState getStateForPlacement(BlockPlaceContext context) {\n //\u6839\u636e\u653e\u7f6e\u65f6\u7684\u73a9\u5bb6\u65b9\u4f4d\u3001\u70b9\u51fb\u65b9\u5757\u9762\u7b49\u8bbe\u7f6e\u65b9\u5757\u72b6\u6001\n return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());\n}\n\n@Override\nprotected BlockState rotate(BlockState state, Rotation rot) {\n //\u4ece\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u4e2d\u8fd4\u56de\u5177\u6709\u6307\u5b9a\u65cb\u8f6c\u7684\u65b9\u5757\u72b6\u6001\u3002\u5982\u679c\u4e0d\u9002\u7528\uff0c\u5219\u8fd4\u56de\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u3002\n return state.setValue(FACING, rot.rotate(state.getValue(FACING)));\n}\n\n@Override\nprotected BlockState mirror(BlockState state, Mirror mirror) {\n //\u4ece\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u4e2d\u8fd4\u56de\u5177\u6709\u7ed9\u5b9a\u955c\u50cf\u7684\u4f20\u5165\u65b9\u5757\u72b6\u6001\u3002\u5982\u679c\u4e0d\u9002\u7528\uff0c\u5219\u8fd4\u56de\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u3002\n return state.rotate(mirror.getRotation(state.getValue(FACING)));\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u65b9\u5757\u72b6\u6001\u7684\u7f16\u5199\u5c31\u9700\u8981\u81ea\u5df1\u7684\u60f3\u8c61\u529b\u4e86\uff0c\u4ece\u8fd9\u91cc\u5f00\u59cb\u5c31\u8981\u52a0\u5165\u81ea\u5df1\u7684\u7406\u89e3\u6765\u7f16\u5199\u5c5e\u4e8e\u81ea\u5df1\u7684\u5947\u8ff9\u3002\u672c\u6559\u7a0b\u53ea\u80fd\u63d0\u4f9b\u57fa\u7840\uff0c\u8ba9\u5f00\u53d1\u8005\u66f4\u5feb\u7684\u719f\u6089\u5404\u79cd\u65b9\u6cd5\u5c5e\u6027\u5bf9\u5e94\u7740\u4ec0\u4e48\uff0c\u5176\u4ed6\u7684\u90fd\u53ea\u80fd\u9760\u81ea\u5df1\u6765\u521b\u9020\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757",children:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757"}),"\n",(0,c.jsxs)(n.p,{children:["\u4ee5\u4e0a\u6211\u4eec\u4fbf\u80fd\u5199\u51fa\u4e00\u4e2a\u5b8c\u6574\u7684\u65b9\u5757\u4e86\uff0c\u4f46\u5982\u679c\u4f60\u5e0c\u671b\u81ea\u5df1\u7684\u65b9\u5757\u62e5\u6709\u5de5\u4f5c\u53f0\u3001\u7bb1\u5b50\u3001\u7194\u7089\u90a3\u6837\u7684\u4f5c\u7528\u7684\u8bdd\uff0c\u53ea\u662f\u4ee5\u4e0a\u7684\u90e8\u5206\u663e\u7136\u8fd8\u8fdc\u8fdc\u4e0d\u591f\uff0c\u8fd9\u5c31\u9700\u8981\u4f60\u7684\u65b9\u5757\u62e5\u6709\u4e00\u4e2a\u5bf9\u5e94\u7684",(0,c.jsx)(n.strong,{children:"\u65b9\u5757\u5b9e\u4f53"}),"\u4e86\u3002"]}),"\n",(0,c.jsxs)(n.p,{children:["\u5f53\u7136\uff0c\u8fd9\u65f6\u5982\u679c\u53ea\u662f\u7b80\u5355\u7684\u7ee7\u627f",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u5c31\u6709\u70b9\u4e0d\u591f\u4e86\uff0c\u4f60\u53ef\u4ee5\u5728\u7ee7\u627f",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u7684\u540c\u65f6\u5b9e\u73b0",(0,c.jsx)(n.code,{children:"EntityBlock"}),"\u63a5\u53e3\uff0c\u6216\u8005\u7b80\u5355\u70b9\u76f4\u63a5\u7ee7\u627f",(0,c.jsx)(n.code,{children:"BaseEntityBlock"}),"\u7c7b\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"public class ExampleEntityBlock extends Block implements EntityBlock {\n}\n\n//\u6216\u8005\n\npublic class ExampleEntityBlock extends BaseEntityBlock {\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u53ef\u4ee5\u4fee\u6539\u7684\u65b9\u6cd5\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"@Override\npublic BlockEntity newBlockEntity(BlockPos pos, BlockState state) {\n //\u6307\u5b9a\u65b9\u5757\u5bf9\u5e94\u7684\u65b9\u5757\u5b9e\u4f53\n return new ExampleEBEntity(pos, state);\n //EB\u5c31\u662f\u6307\u4ee3EntityBlock\uff0c\u5168\u5199\u592a\u957f\u4e86\n}\n\n@Override\npublic BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) {\n if (type == ModBlockEntities.EXAMPLE_ENTITY_BLOCK.get()) {\n //\u7528\u4e8e\u6267\u884c\u65b9\u5757\u7684\u523b\u65b9\u6cd5\uff0c\u5728Entity\u7c7b\u91cc\u4e5f\u4f1a\u63d0\u5230\n return ExampleEBEntity::tick;\n }\n return null;\n}\n\n@Override\npublic InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) {\n if (!level.isClientSide()) {\n BlockEntity entity = level.getBlockEntity(pos);\n if (entity instanceof ExampleEBEntity) {\n player.openMenu(state.getMenuProvider(level, pos));\n //\u6253\u5f00\u65b9\u5757\u5bf9\u5e94\u7684GUI\uff0c\u540e\u9762\u4f1a\u63d0\u5230GUI\u7684\u7f16\u5199\n return InteractionResult.CONSUME;\n }\n }\n return InteractionResult.SUCCESS;\n}\n"})}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c",children:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c"}),"\n",(0,c.jsxs)(n.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\u6709\u4e00\u4e2a",(0,c.jsx)(n.code,{children:"ModBlockEntities"}),"\u7c7b\u9700\u8981\u89e3\u91ca\u4e00\u4e0b\uff0c\u5728\u539f\u7248\u4e2d\uff0c",(0,c.jsx)(n.code,{children:"BlockEntityType"}),"\u7c7b\u4e2d\u5305\u542b\u4e86\u6240\u6709\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53\u7c7b\u7684\u5bf9\u5e94\u5173\u7cfb\uff0c\u5728\u4e4b\u540e\u7684\u4ee3\u7801\u7f16\u5199\u4e2d\u8fd9\u51e0\u4e4e\u662f\u65e0\u6cd5\u7ed5\u5f00\u7684\u4e00\u73af\uff0c\u5f53\u7136\u7684\uff0c\u5176\u4e2d\u6ce8\u518c\u7684\u65b9\u6cd5\u662f\u79c1\u6709\u7684\uff0c\u5bfc\u81f4\u6211\u4eec\u65e0\u6cd5\u76f4\u63a5\u6ce8\u518c\u65b0\u7684\u65b9\u5757\u5b9e\u4f53\u7c7b\u578b\u3002\u90a3\u4e48\u5f53\u7136\u7684\uff0c\u524d\u9762\u63d0\u5230\u7684",(0,c.jsx)(n.code,{children:"DeferredRegister"}),"\u5c31\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u6ce8\u518c\u81ea\u5df1\u7684\u65b9\u5757\u5b9e\u4f53\u7c7b\u578b\u3002\u5b83\u8ddf\u65b9\u5757\u7684\u6ce8\u518c\u5199\u6cd5\u7565\u6709\u4e0d\u540c\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'public static final DeferredRegister> BLOCK_ENTITIES =\n DeferredRegister.create(BuiltInRegistries.BLOCK_ENTITY_TYPE, Example_Mod.MOD_ID);\n\npublic static final DeferredHolder, BlockEntityType> EXAMPLE_ENTITY_BLOCK =\n BLOCK_ENTITIES.register("example_entity_block", new Supplier>() {\n @Override\n public BlockEntityType get() {\n return BlockEntityType.Builder.of(ExampleEBEntity::new,\n ModBlocks.EXAMPLE_ENTITY_BLOCK.get()).build(null);\n }\n });\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5f53\u7136\uff0c\u8bb0\u5f97\u5728\u65b9\u5757\u6ce8\u518c\u7c7b\u6ce8\u518c\u65b9\u5757\uff0c\u6b64\u5904\u4e0d\u518d\u8d58\u8ff0\u3002"}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u5b9e\u4f53\u7c7b",children:"\u65b9\u5757\u5b9e\u4f53\u7c7b"}),"\n",(0,c.jsx)(n.p,{children:"\u73b0\u5728\u6240\u6709\u7684\u51c6\u5907\u5de5\u4f5c\u5df2\u7ecf\u57fa\u672c\u5b8c\u6210\u4e86\uff0c\u63a5\u4e0b\u6765\u5c31\u662f\u6700\u91cd\u8981\u7684\u4e00\u6b65\uff0centity\u7c7b\u7684\u7f16\u5199\u3002\u6211\u4eec\u4ee5\u949f\u4e3a\u53c2\u8003\uff0c\u7f16\u5199\u4e00\u4e2a\u7a7a\u767d\u7684\u65b9\u5757\u5b9e\u4f53\u6846\u67b6\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"public class ExampleEBEntity extends BlockEntity {\n public ExampleEBEntity(BlockPos pos, BlockState blockState) {\n super(ModBlockEntities.EXAMPLE_ENTITY_BLOCK.get(), pos, blockState);\n }\n\n private static void tick(Level level, BlockPos pos, BlockState state, BlockEntity entity) {\n //\u5728ExampleEntityBlock\u4e2d\u8c03\u7528\u7684\u65b9\u6cd5\uff0c\u65b9\u5757\u968f\u673a\u523b\n if (entity instanceof ExampleEBEntity) {\n ...\n }\n }\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u4e86\u89e3\u6bcf\u4e2a\u65b9\u5757\u6709\u54ea\u4e9b\u5730\u65b9\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\u6211\u4eec\u7684\u60f3\u6cd5\uff1a"}),"\n",(0,c.jsxs)(n.p,{children:["\u4e00\u79cd\u662f\u5355\u6b21\u8c03\u7528\u7684\uff0c\u6bd4\u5982",(0,c.jsx)(n.code,{children:"onHit"}),"\uff0c",(0,c.jsx)(n.code,{children:"onBreak"}),"\u7b49\u3002"]}),"\n",(0,c.jsxs)(n.p,{children:["\u53e6\u4e00\u79cd\u4e5f\u662f\u6700\u4e3b\u8981\u7684\uff0c\u5c31\u662f",(0,c.jsx)(n.code,{children:"tick"}),"\u65b9\u6cd5\uff0c\u5728\u63a5\u4e0b\u6765\u4f1a\u4e3b\u8981\u8bb2",(0,c.jsx)(n.code,{children:"tick"}),"\u65b9\u6cd5\u7684\u4f7f\u7528\uff0c\u56e0\u4e3a\u5b83\u4eec\u4e4b\u95f4\u7684\u4f7f\u7528\u51e0\u4e4e\u662f\u4e00\u81f4\u7684\u3002"]}),"\n",(0,c.jsx)(n.p,{children:"\u6700\u7b80\u5355\u7684\uff0c\u6211\u4eec\u53ef\u4ee5\u5c1d\u8bd5\u6bcf\u4e2a\u968f\u673a\u523b\u5411\u63a7\u5236\u53f0\u8f93\u51fa\u4e00\u4e9b\u81ea\u8eab\u7684\u4fe1\u606f\uff0c\u6bd4\u5982\u65b9\u5757\u5b9e\u4f53\u7684\u4f4d\u7f6e\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'@Override\npublic void tick(Level level, BlockPos pos, BlockState state, BlockEntity entity) {\n if (entity instanceof ExampleEBEntity) {\n System.out.println("ExampleEBEntity tick at " + pos);\n }\n}\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u4e0b\u4e00\u7ae0\u6211\u4eec\u5c06\u4ece\u5404\u4e2a\u65b9\u5411\u6765\u5b8c\u5584\u65b9\u5757\u5b9e\u4f53\u7684\u7f16\u5199\u3002"}),"\n",(0,c.jsx)(n.hr,{}),"\n",(0,c.jsx)(n.p,{children:"yhz_cake\u4e8e2025\u5e7412\u670814\u65e5\u8d77\u7a3f\u5e76\u4e8e15\u65e5\u6682\u65f6\u4e2d\u6b62"}),"\n",(0,c.jsx)(n.p,{children:"yhz_cake\u4fee\u6b63\u4e8e2025\u5e7412\u670821\u65e5\uff0c\u53c8\u7ee7\u7eed\u7ec8\u6b62"}),"\n",(0,c.jsx)(n.p,{children:"yhz_cake\u4e8e2026\u5e744\u67083\u65e5\u8f6c\u79fb\u81f3\u4ed3\u5e93\u5e76\u91cd\u65b0\u6392\u7248"}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"Copyright \xa9 2026 yhz_cake. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(d,{...e})}):d(e)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/44ff7eef.0f9222c1.js b/docs/assets/js/44ff7eef.0f9222c1.js
deleted file mode 100644
index 69c2496..0000000
--- a/docs/assets/js/44ff7eef.0f9222c1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[6714],{6318:(r,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"NeoForge1.21Tutorial/\u7b2c\u56db\u7ae0/nf1.21ep4","title":"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)","description":"\u63d0\u793a","source":"@site/tutorial/1-NeoForge1.21Tutorial/4-\u7b2c\u56db\u7ae0/index.md","sourceDirName":"1-NeoForge1.21Tutorial/4-\u7b2c\u56db\u7ae0","slug":"/nf1.21/ep4","permalink":"/docs/tutorial/nf1.21/ep4","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep4","slug":"/nf1.21/ep4"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e09\u7ae0 \u57fa\u7840\u6982\u5ff5","permalink":"/docs/tutorial/nf1.21/ep3"}}');var o=n(4848),i=n(8453);const t={id:"nf1.21ep4",slug:"/nf1.21/ep4"},d="\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)",a={},c=[{value:"\u4fee\u6539\u914d\u7f6e",id:"\u4fee\u6539\u914d\u7f6e",level:3}];function l(r){const e={blockquote:"blockquote",code:"code",h1:"h1",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...r.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.header,{children:(0,o.jsx)(e.h1,{id:"\u7b2c\u56db\u7ae0-\u7b2c\u4e00\u4e2a\u7269\u54c1item",children:"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)"})}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["\u2139\ufe0f",(0,o.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u4e3a\u4e86\u80fd",(0,o.jsx)(e.strong,{children:"\u63d0\u524d\u4f53\u9a8c"}),"\u4e00\u4e0b\u628a\u81ea\u5df1\u5199\u7684\u7269\u54c1\u642c\u8fdb\u6e38\u620f\u7684\u5feb\u4e50\uff0c\u672c\u7ae0",(0,o.jsx)(e.strong,{children:"\u8df3\u8fc7"}),"\u4e86\u4e00\u4e9b\u5de5\u7a0b\u6587\u4ef6\u7684\u4ecb\u7ecd\u76f4\u63a5\u5f00\u59cb\u5236\u4f5c",(0,o.jsx)(e.strong,{children:"\u7269\u54c1"}),"\uff0c\u4e00\u4e9b\u989d\u5916\u5185\u5bb9\u6211\u4eec\u5c06\u4f1a\u5728",(0,o.jsx)(e.strong,{children:"\u7b2c\u4e94\u7ae0"}),"\u518d\u6b21\u4ecb\u7ecd\u3002"]}),"\n"]}),"\n",(0,o.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,o.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,o.jsx)(e.code,{children:"Minecraft1.21"}),(0,o.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,o.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,o.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,o.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,o.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,o.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,o.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["\u2139\ufe0f",(0,o.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,o.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,o.jsx)(e.h3,{id:"\u4fee\u6539\u914d\u7f6e",children:"\u4fee\u6539\u914d\u7f6e"}),"\n",(0,o.jsxs)(e.p,{children:["\u4f60\u9700\u8981\u6253\u5f00",(0,o.jsx)(e.code,{children:"gradle.properties"}),"\uff0c\u8fd9\u662f\u4e00\u4efd",(0,o.jsx)(e.strong,{children:"\u5c5e\u6027\u6587\u4ef6"}),"\uff0c\u6211\u4eec",(0,o.jsx)(e.strong,{children:"\u9700\u8981\u4fee\u6539"}),"\u7684\u6b63\u662f\u5b83\u3002"]}),"\n",(0,o.jsxs)(e.p,{children:["\u5728\u8fd9\u91cc\u6446\u4e00\u4efd\u7ecf\u8fc7\u7ffb\u8bd1\u548c\u989d\u5916\u6ce8\u91ca\u7684\u5c5e\u6027\u6587\u4ef6\uff0c\u8bf7",(0,o.jsx)(e.strong,{children:"\u6309\u7167\u6ce8\u91ca\u8bf4\u660e"}),"\u4e00\u6b65\u4e00\u6b65\u4fee\u6539\uff08\u4f60\u4e0d\u5fc5\u628a\u6211\u7684\u6ce8\u91ca\u4e5f\u6284\u4e0a\u53bb\uff09\uff1a"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-properties",metastring:'title="gradle.properties" showLineNumbers',children:"# \u8bbe\u7f6e\u7528\u4e8eGradle\u547d\u4ee4\u7684\u9ed8\u8ba4\u5185\u5b58\u3002\u53ef\u4ee5\u7531\u7528\u6237\u6216\u547d\u4ee4\u884c\u5c5e\u6027\u8986\u76d6\u3002\r\n\r\n# \u4f46\u662f\u8bf7\u4f60 \u4e0d\u8981\u4fee\u6539 \u524d\u534a\u90e8\u5206\u4e1c\u897f\uff0c\u6211\u4f1a\u5728\u6ce8\u91ca\u4e2d\u544a\u8bc9\u4f60\u54ea\u91cc\u5f00\u59cb\u9700\u8981\u4fee\u6539\u7684\u3002\r\n\r\n# \u8fd9\u91cc\u662f\u4e00\u4e9b\u57fa\u7840\u53c2\u6570\uff0c\u6bd4\u5982\u865a\u62df\u673a\u5806\u5185\u5b58\u5927\u5c0f\u3001\u5b88\u62a4\u3001\u7f13\u5b58\u4f7f\u7528\u4e4b\u7c7b\u7684\u3002\r\norg.gradle.jvmargs=-Xmx1G\r\norg.gradle.daemon=true\r\norg.gradle.parallel=true\r\norg.gradle.caching=true\r\norg.gradle.configuration-cache=true\r\n\r\n#\u4e0b\u9762\u4e24\u884c\u662f\u4f7f\u7528\u7f8a\u76ae\u7eb8\u6620\u5c04\u7684\u8bbe\u7f6e\u3002\u6620\u5c04\u662f\u4ec0\u4e48\uff1f\u6211\u540e\u9762\u4f1a\u8bb2\u89e3\u7684\u3002\r\n#\u8be6\u89c1 https://github.com/neoforged/ModDevGradle?tab=readme-ov-file#better-minecraft-parameter-names--javadoc-parchment\r\n# \u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd9\u91cc\u627e\u5230\u6700\u65b0\u7248\u672c: https://parchmentmc.org/docs/getting-started\r\nparchment_minecraft_version=1.21\r\nparchment_mappings_version=2024.07.28\r\n\r\n# \u73af\u5883\u5c5e\u6027\r\n# \u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u627e\u5230\u6700\u65b0\u7248\u672c: https://projects.neoforged.net/neoforged/neoforge\r\n# Minecraft\u7248\u672c\u5fc5\u987b\u4e0eNeo\u7248\u672c\u4e00\u81f4\u624d\u80fd\u83b7\u5f97\u6709\u6548\u7684\u5de5\u4ef6(\u5373\u6700\u7ec8\u4ea7\u51fa\u7684jar\u5305)\r\nminecraft_version=1.21.1\r\n\r\n# \u53ef\u4ee5\u4f7f\u7528Minecraft\u7684\u4efb\u4f55\u53d1\u5e03\u7248\u672c\u4f5c\u4e3aMinecraft\u7248\u672c\u8303\u56f4\u7684\u9650\u5236\u3002\r\n# \u5feb\u7167\u3001\u9884\u53d1\u5e03\u548c\u5019\u9009\u53d1\u5e03\u5219\u4e0d\u80fd\u4fdd\u8bc1\u6b63\u786e\u7684\u6392\u5e8f\uff0c\r\n# \u56e0\u4e3a\u5b83\u4eec\u4e0d\u9075\u5faa\u6807\u51c6\u7684\u7248\u672c\u63a7\u5236\u7ea6\u5b9a(\u4eba\u8bdd\uff1a\u65e0\u89c4\u77e9\u4e0d\u6210\u65b9\u5706\uff0c\u6ca1\u5546\u91cf\u597d\u7684\u7248\u672c\u7c7b\u578b\u5c31\u7b97\u9b54\u9171\u4e71\u6392\u5e8f\u4e5f\u65e0\u53ef\u539a\u975e)\r\n# \u554a\u53e6\u5916\u8fd9\u4e2a\u7248\u672c\u8303\u56f4\u662f\u9ad8\u4e2d\u6570\u5b66\u7684\u533a\u95f4\u7684\u5199\u6cd5\uff0c\u4f60\u81f3\u5c11\u5f97\u77e5\u9053\u4e00\u4e0b\u3002(\u4f60\u5e94\u8be5\u77e5\u9053\u7684\u5427\uff1f)\r\nminecraft_version_range=[1.21.1, 1.22)\r\n\r\n# Neo\u7248\u672c\u5fc5\u987b\u4e0eMinecraft\u7248\u672c\u4e00\u81f4\u624d\u80fd\u83b7\u5f97\u6709\u6548\u7684\u5de5\u4ef6(\u628a\u524d\u9762\u90a3\u53e5\u5012\u8fc7\u6765\u8bf4\u4e86\u4e00\u904d)\r\nneo_version=21.1.72\r\n\r\n# \u53ef\u4ee5\u4f7f\u7528Neo\u7684\u4efb\u4f55\u53d1\u5e03\u7248\u672c\u4f5c\u4e3aNeo\u7248\u672c\u8303\u56f4\u7684\u9650\u5236(\u8ddf\u5ff5\u7ecf\u4f3c\u7684)\r\nneo_version_range=[21.1.0,)\r\n\r\n# \u4f46\u662f\u53ea\u80fd\u4f7f\u7528FML\u7684\u4e3b\u8981\u7248\u672c\u4f5c\u4e3a\u52a0\u8f7d\u5668\u7248\u672c\u8303\u56f4\u7684\u9650\u5236\u3002\r\nloader_version_range=[4,)\r\n\r\n\r\n## \u6a21\u7ec4\u5c5e\u6027\r\n# \u6ce8\u610f\u5566\uff01\u4ece\u8fd9\u91cc\u5f00\u59cb\u8981 >>>\u9891\u7e41\u4fee\u6539<<< \u5566\uff01\r\n\r\n# \u4e0b\u9762\u8fd9\u4e2a\u662fmod\u7684\u552f\u4e00mod\u6807\u8bc6\u7b26\u3002\u5728\u82f1\u8bed\u533a\u57df\u8bbe\u7f6e\u4e2d\u5fc5\u987b\u5c0f\u5199\u3002\u5fc5\u987b\u7b26\u5408\u6b63\u5219\u8868\u8fbe\u5f0f[a-z][a-z0-9_]{1,63}\r\n# \u5fc5\u987b\u4e0e\u4f4d\u4e8e\u7528@Mod\u6ce8\u91ca\u7684mod\u4e3b\u7c7b\u4e2d\u7684String\u5e38\u91cf\u5339\u914d\u3002\r\n\r\n# \u610f\u601d\u5c31\u662f\u8bf4\u8fd9\u4e2amod_id\u662f\u4f60\u5199\u7684\u6a21\u7ec4\u7684\u552f\u4e00\u8eab\u4efd\u8bc1\uff0c\u4e0d\u80fd\u4e0e\u5176\u4ed6\u6a21\u7ec4\u51b2\u7a81(\u8fd9\u70b9\u4f60\u5012\u4e0d\u7528\u8fc7\u5ea6\u62c5\u5fc3\uff0c\r\n# \u4f46\u8bf7\u4e0d\u8981\u628a\u6211\u63d0\u4f9b\u7684\u793a\u4f8bmod_id\u5199\u4e0a\u53bb)\r\n# \u91cd\u70b9\u5728\u4e8emod_id\u540e\u9762\u7684\u5185\u5bb9\u53ea\u80fd\u586b\u5165\u5c0f\u5199\u7684\u82f1\u6587\u5b57\u7b26\u3001\u82f1\u6587\u4e0b\u5212\u7ebf\u548c\u6807\u51c6\u6570\u5b57\u3002\r\n# \u6211\u4eec\u540e\u9762\u8fd8\u4f1a\u5728\u6a21\u7ec4\u7684\u4e3b\u7c7b(\u5373\u6a21\u7ec4\u63a5\u5165MC\u7684\u4e00\u4e2a\u8d77\u70b9)\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u8fd9\u6837\u7684\u5e38\u91cf\uff0c\u4e24\u8005\u8981\u4e00\u6a21\u4e00\u6837\u3002\r\n# \u6bd4\u5982\u6211\u8981\u5199\u4e00\u4e2a\u5e9f\u571f\u98ce\u683c\u7684\u5de5\u4e1a\u6a21\u7ec4\uff0c\u6211\u7ba1\u5b83\u53eb\u201c\u5de5\u4e1a\u9057\u8ff9\u201d\uff0c\u82f1\u6587\u540d\u5c31\u53ebIndustrial Heritage\uff0c\r\n# \u90a3\u4e48\u6211\u7684mod_id\u5c31\u662f\u201cindustrial_heritage\u201d\u3002\r\nmod_id=examplemod\r\n\r\n# \u6a21\u7ec4\u7684\u540d\u5b57\uff0c\u8fd9\u4e2a\u662f\u7ed9\u73a9\u5bb6\u770b\u7684\uff0c\u4f1a\u663e\u793a\u5728mod\u754c\u9762\uff0c\u6240\u4ee5\u53ef\u4ee5\u5199\u4e2d\u6587\u548c\u7a7a\u683c\u4ec0\u4e48\u7684\u3002\r\nmod_name=Example Mod\r\n\r\n# \u6a21\u7ec4\u5e93\u6240\u9075\u5faa\u7684\u534f\u8bae\u3002\u5728\u8fd9\u91cc\u7ffb\u9605\u9002\u5408\u4f60\u7684\u534f\u8bae: https://choosealicense.com/. All Rights Reserved \u662f\u9ed8\u8ba4\u7684\u534f\u8bae\u3002\r\n# \u5982\u679c\u4f60\u4e0d\u4e86\u89e3\u6216\u4e0d\u60f3\u4e86\u89e3\u4ec0\u4e48\u662f\u534f\u8bae\uff0c\u4f60\u53ef\u4ee5\u4e0d\u7ba1\u8fd9\u91cc\u7684\u5185\u5bb9\u3002\r\nmod_license=All Rights Reserved\r\n\r\n# \u6a21\u7ec4\u7248\u672c\uff0c\u89c4\u8303\u89c1 https://semver.org/lang/zh-CN/\r\n# \u8fd9\u5c31\u662f\u4f60\u7684\u6a21\u7ec4\u7248\u672c\uff0c\u4f60\u53ef\u4ee5\u81ea\u5df1\u5b9a\u7248\u672c\uff0c\u4f46\u662f\u6211\u5efa\u8bae\u4f60\u770b\u770b\u7f51\u7ad9\u91cc\u201c\u5173\u4e8e\u8f6f\u4ef6\u7248\u672c\u7684\u5efa\u8bae-\u6458\u8981\u201d\u7684\u90e8\u5206\u3002\r\nmod_version=1.0.0\r\n\r\n# mod\u7684\u7ec4ID\u3002\u53ea\u5728\u4f5c\u4e3a\u5de5\u4ef6\u53d1\u5e03\u5230Maven\u5b58\u50a8\u5e93\u65f6\u624d\u7528\u5f97\u5230(\u4e5f\u786e\u5b9e\u5f88\u91cd\u8981)\u3002\r\n# \u8fd9\u5e94\u8be5\u4e0e\u7528\u4e8emod\u8d44\u6e90\u7684\u57fa\u672c\u5305\u540d\u76f8\u5339\u914d\uff0c\u610f\u601d\u662f\u4f60\u5f85\u4f1a\u9700\u8981\u5728\u4f60\u7684src\u4e0b\u9762\u6309\u987a\u5e8f\u5efa\u7acb\u8fd9\u4ee8\u6587\u4ef6\u5939\r\n# \u89c1 https://maven.apache.org/guides/mini/guide-naming-conventions.html\r\n# \u8fd9\u91cc\u586b\u5165\u7684\u5c31\u662f\u4f60\u7684\u4e09\u4e2a\u7ea7\u7684\u5305\u540d\uff0c\u4e5f\u5927\u6982\u662f\u4f60\u7684\u6a21\u7ec4\u4e3b\u7c7b\u5b58\u653e\u7684\u4f4d\u7f6e\u3002\r\n# \u4e5f\u5c31\u662f\u8bf4\uff0c\u4f60\u6700\u597d\u8fd8\u662f\u9075\u5faa\u4e09\u7ea7\u5012\u5199\u57df\u4f5c\u4e3a\u4f60\u7684\u5305\u540d\u7684\u903b\u8f91\u3002\u4f60\u5176\u5b9e\u4e5f\u53ef\u4ee5\u81ea\u5df1\u81ea\u7531\u5b9a\u4e49\u3002\r\n# \u6bd4\u5982\u4f60\u4e70\u4e86\u4e2a\u53ebshits.coding.store\u7684\u57df\u540d\uff0c\u90a3\u4f60\u53ef\u4ee5\u5199\u6210store.coding.shit\r\n# \u6bd4\u5982\u6211\uff0c\u6211\u6709\u4e00\u4e2aGitPage\uff0c\u662fmakertechno.github.io\uff0c\u90a3\u4e48\u6211\u53ef\u4ee5\u5199\u6210github.makertechno.industrialheritage\r\n# \u5176\u5b9e\uff0c\u6211\u66f4\u559c\u6b22\u5199\u6210 none.maker.industrialheritage \uff0c\u6bd5\u7adfgithub\u4e5f\u4e0d\u662f\u6211\u5f00\u7684\u3002\r\nmod_group_id=com.example.examplemod\r\n# \u6a21\u7ec4\u4f5c\u8005. \u8fd9\u662f\u4f1a\u663e\u793a\u5230\u6a21\u7ec4\u5217\u8868\u7684\u8bf4\u660e\u4e2d\u7684\r\nmod_authors=\u4f60\u7684\u540d\u5b57, \u522b\u4eba\u7684\u540d\u5b57...\r\n# \u6a21\u7ec4\u63cf\u8ff0\uff0c\u662f\u4e00\u4e2a\u591a\u884c\u7684\u4ecb\u7ecd\u4f60\u6a21\u7ec4\u7684\u6587\u672c\u3002\u901a\u8fc7\\n\u8868\u793a\u6362\u884c\u3002\r\nmod_description=Example mod description.\\nNewline characters can be used and will be replaced properly.\r\n\n"})}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u5f88\u91cd\u8981"}),"\u7684\u4e00\u70b9\u5c31\u662f\uff0c\u8fd9\u4e9b\u5185\u5bb9\u4e00\u90e8\u5206\u4f1a\u5e94\u7528\u5230\u5f00\u53d1\u73af\u5883\u7684\u8def\u5f84\u903b\u8f91\u4e2d\uff0c\u4e5f\u6709\u4e00\u90e8\u5206\u4f1a\u5e94\u7528\u5230\u4f60\u6700\u7ec8\u5728\u6e38\u620f\u5185\u770b\u5230\u7684\u6a21\u7ec4\u4ecb\u7ecd\u4e2d\u3002"]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsx)(e.p,{children:"MakerTechno\u4e8e2025\u5e746\u67082\u65e5\u8d77\u7a3f\u5e76\u6682\u65f6\u4e2d\u6b62"}),"\n",(0,o.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,o.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.strong,{children:"Copyright \xa9 2025 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,o.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function h(r={}){const{wrapper:e}={...(0,i.R)(),...r.components};return e?(0,o.jsx)(e,{...r,children:(0,o.jsx)(l,{...r})}):l(r)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/4914.3af8dca9.js b/docs/assets/js/4914.3af8dca9.js
deleted file mode 100644
index b5f98d3..0000000
--- a/docs/assets/js/4914.3af8dca9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[4914],{697:(t,e,r)=>{r.d(e,{T:()=>a.T});var a=r(7981)},4914:(t,e,r)=>{r.d(e,{diagram:()=>me});var a=r(4651),s=r(70),i=r(8823),n=r(8506),o=r(6792),l=r(1750),c=r(53),d=r(5937),h=r(5582),g=r(451),u=r(697),p=function(){var t=(0,l.K2)(function(t,e,r,a){for(r=r||{},a=t.length;a--;r[t[a]]=e);return r},"o"),e=[1,7],r=[1,13],a=[1,14],s=[1,15],i=[1,19],n=[1,16],o=[1,17],c=[1,18],d=[8,30],h=[8,21,28,29,30,31,32,40,44,47],g=[1,23],u=[1,24],p=[8,15,16,21,28,29,30,31,32,40,44,47],y=[8,15,16,21,27,28,29,30,31,32,40,44,47],b=[1,49],x={trace:(0,l.K2)(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:(0,l.K2)(function(t,e,r,a,s,i,n){var o=i.length-1;switch(s){case 4:a.getLogger().debug("Rule: separator (NL) ");break;case 5:a.getLogger().debug("Rule: separator (Space) ");break;case 6:a.getLogger().debug("Rule: separator (EOF) ");break;case 7:a.getLogger().debug("Rule: hierarchy: ",i[o-1]),a.setHierarchy(i[o-1]);break;case 8:a.getLogger().debug("Stop NL ");break;case 9:a.getLogger().debug("Stop EOF ");break;case 10:a.getLogger().debug("Stop NL2 ");break;case 11:a.getLogger().debug("Stop EOF2 ");break;case 12:a.getLogger().debug("Rule: statement: ",i[o]),"number"==typeof i[o].length?this.$=i[o]:this.$=[i[o]];break;case 13:a.getLogger().debug("Rule: statement #2: ",i[o-1]),this.$=[i[o-1]].concat(i[o]);break;case 14:a.getLogger().debug("Rule: link: ",i[o],t),this.$={edgeTypeStr:i[o],label:""};break;case 15:a.getLogger().debug("Rule: LABEL link: ",i[o-3],i[o-1],i[o]),this.$={edgeTypeStr:i[o],label:i[o-1]};break;case 18:const e=parseInt(i[o]),r=a.generateId();this.$={id:r,type:"space",label:"",width:e,children:[]};break;case 23:a.getLogger().debug("Rule: (nodeStatement link node) ",i[o-2],i[o-1],i[o]," typestr: ",i[o-1].edgeTypeStr);const s=a.edgeStrToEdgeData(i[o-1].edgeTypeStr);this.$=[{id:i[o-2].id,label:i[o-2].label,type:i[o-2].type,directions:i[o-2].directions},{id:i[o-2].id+"-"+i[o].id,start:i[o-2].id,end:i[o].id,label:i[o-1].label,type:"edge",directions:i[o].directions,arrowTypeEnd:s,arrowTypeStart:"arrow_open"},{id:i[o].id,label:i[o].label,type:a.typeStr2Type(i[o].typeStr),directions:i[o].directions}];break;case 24:a.getLogger().debug("Rule: nodeStatement (abc88 node size) ",i[o-1],i[o]),this.$={id:i[o-1].id,label:i[o-1].label,type:a.typeStr2Type(i[o-1].typeStr),directions:i[o-1].directions,widthInColumns:parseInt(i[o],10)};break;case 25:a.getLogger().debug("Rule: nodeStatement (node) ",i[o]),this.$={id:i[o].id,label:i[o].label,type:a.typeStr2Type(i[o].typeStr),directions:i[o].directions,widthInColumns:1};break;case 26:a.getLogger().debug("APA123",this?this:"na"),a.getLogger().debug("COLUMNS: ",i[o]),this.$={type:"column-setting",columns:"auto"===i[o]?-1:parseInt(i[o])};break;case 27:a.getLogger().debug("Rule: id-block statement : ",i[o-2],i[o-1]);a.generateId();this.$={...i[o-2],type:"composite",children:i[o-1]};break;case 28:a.getLogger().debug("Rule: blockStatement : ",i[o-2],i[o-1],i[o]);const n=a.generateId();this.$={id:n,type:"composite",label:"",children:i[o-1]};break;case 29:a.getLogger().debug("Rule: node (NODE_ID separator): ",i[o]),this.$={id:i[o]};break;case 30:a.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",i[o-1],i[o]),this.$={id:i[o-1],label:i[o].label,typeStr:i[o].typeStr,directions:i[o].directions};break;case 31:a.getLogger().debug("Rule: dirList: ",i[o]),this.$=[i[o]];break;case 32:a.getLogger().debug("Rule: dirList: ",i[o-1],i[o]),this.$=[i[o-1]].concat(i[o]);break;case 33:a.getLogger().debug("Rule: nodeShapeNLabel: ",i[o-2],i[o-1],i[o]),this.$={typeStr:i[o-2]+i[o],label:i[o-1]};break;case 34:a.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",i[o-3],i[o-2]," #3:",i[o-1],i[o]),this.$={typeStr:i[o-3]+i[o],label:i[o-2],directions:i[o-1]};break;case 35:case 36:this.$={type:"classDef",id:i[o-1].trim(),css:i[o].trim()};break;case 37:this.$={type:"applyClass",id:i[o-1].trim(),styleClass:i[o].trim()};break;case 38:this.$={type:"applyStyles",id:i[o-1].trim(),stylesStr:i[o].trim()}}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:s,32:i,40:n,44:o,47:c},{8:[1,20]},t(d,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:a,31:s,32:i,40:n,44:o,47:c}),t(h,[2,16],{14:22,15:g,16:u}),t(h,[2,17]),t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),t(h,[2,21]),t(h,[2,22]),t(p,[2,25],{27:[1,25]}),t(h,[2,26]),{19:26,26:12,32:i},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:s,32:i,40:n,44:o,47:c},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(y,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(d,[2,13]),{26:35,32:i},{32:[2,14]},{17:[1,36]},t(p,[2,24]),{11:37,13:4,14:22,15:g,16:u,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:s,32:i,40:n,44:o,47:c},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(y,[2,30]),{18:[1,43]},{18:[1,44]},t(p,[2,23]),{18:[1,45]},{30:[1,46]},t(h,[2,28]),t(h,[2,35]),t(h,[2,36]),t(h,[2,37]),t(h,[2,38]),{37:[1,47]},{34:48,35:b},{15:[1,50]},t(h,[2,27]),t(y,[2,33]),{39:[1,51]},{34:52,35:b,39:[2,31]},{32:[2,15]},t(y,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:(0,l.K2)(function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},"parseError"),parse:(0,l.K2)(function(t){var e=this,r=[0],a=[],s=[null],i=[],n=this.table,o="",c=0,d=0,h=0,g=i.slice.call(arguments,1),u=Object.create(this.lexer),p={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(p.yy[y]=this.yy[y]);u.setInput(t,p.yy),p.yy.lexer=u,p.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var b=u.yylloc;i.push(b);var x=u.options&&u.options.ranges;function f(){var t;return"number"!=typeof(t=a.pop()||u.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K2)(function(t){r.length=r.length-2*t,s.length=s.length-t,i.length=i.length-t},"popStack"),(0,l.K2)(f,"lex");for(var m,w,_,L,k,S,v,E,D,C={};;){if(_=r[r.length-1],this.defaultActions[_]?L=this.defaultActions[_]:(null==m&&(m=f()),L=n[_]&&n[_][m]),void 0===L||!L.length||!L[0]){var R="";for(S in D=[],n[_])this.terminals_[S]&&S>2&&D.push("'"+this.terminals_[S]+"'");R=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(R,{text:u.match,token:this.terminals_[m]||m,line:u.yylineno,loc:b,expected:D})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+m);switch(L[0]){case 1:r.push(m),s.push(u.yytext),i.push(u.yylloc),r.push(L[1]),m=null,w?(m=w,w=null):(d=u.yyleng,o=u.yytext,c=u.yylineno,b=u.yylloc,h>0&&h--);break;case 2:if(v=this.productions_[L[1]][1],C.$=s[s.length-v],C._$={first_line:i[i.length-(v||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(v||1)].first_column,last_column:i[i.length-1].last_column},x&&(C._$.range=[i[i.length-(v||1)].range[0],i[i.length-1].range[1]]),void 0!==(k=this.performAction.apply(C,[o,d,c,p.yy,L[1],s,i].concat(g))))return k;v&&(r=r.slice(0,-1*v*2),s=s.slice(0,-1*v),i=i.slice(0,-1*v)),r.push(this.productions_[L[1]][0]),s.push(C.$),i.push(C._$),E=n[r[r.length-2]][r[r.length-1]],r.push(E);break;case 3:return!0}}return!0},"parse")},f=function(){return{EOF:1,parseError:(0,l.K2)(function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},"parseError"),setInput:(0,l.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,l.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,l.K2)(function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===a.length?this.yylloc.first_column:0)+a[a.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K2)(function(){return this._more=!0,this},"more"),reject:(0,l.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,l.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K2)(function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,l.K2)(function(t,e){var r,a,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var i in s)this[i]=s[i];return!1}return!1},"test_match"),next:(0,l.K2)(function(){if(this.done)return this.EOF;var t,e,r,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),i=0;ie[0].length)){if(e=r,a=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,s[i])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,l.K2)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,l.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,l.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,l.K2)(function(t,e,r,a){switch(r){case 0:return 10;case 1:return t.getLogger().debug("Found space-block"),31;case 2:return t.getLogger().debug("Found nl-block"),31;case 3:return t.getLogger().debug("Found space-block"),29;case 4:t.getLogger().debug(".",e.yytext);break;case 5:t.getLogger().debug("_",e.yytext);break;case 6:return 5;case 7:return e.yytext=-1,28;case 8:return e.yytext=e.yytext.replace(/columns\s+/,""),t.getLogger().debug("COLUMNS (LEX)",e.yytext),28;case 9:case 77:case 78:case 100:this.pushState("md_string");break;case 10:return"MD_STR";case 11:case 35:case 80:this.popState();break;case 12:this.pushState("string");break;case 13:t.getLogger().debug("LEX: POPPING STR:",e.yytext),this.popState();break;case 14:return t.getLogger().debug("LEX: STR end:",e.yytext),"STR";case 15:return e.yytext=e.yytext.replace(/space\:/,""),t.getLogger().debug("SPACE NUM (LEX)",e.yytext),21;case 16:return e.yytext="1",t.getLogger().debug("COLUMNS (LEX)",e.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:case 39:case 41:case 42:case 45:return this.popState(),t.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),t.getLogger().debug("Lex: ))"),"NODE_DEND";case 43:return this.popState(),t.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),t.getLogger().debug("Lex: -)"),"NODE_DEND";case 46:return this.popState(),t.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),t.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),t.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:case 50:return this.popState(),t.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),t.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),t.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),t.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),t.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return t.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return t.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return t.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:case 60:case 61:case 62:case 65:return t.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return t.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 63:return t.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return t.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 66:case 67:case 68:case 69:case 70:case 71:case 72:return this.pushState("NODE"),36;case 73:return t.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),t.getLogger().debug("LEX ARR START"),38;case 75:return t.getLogger().debug("Lex: NODE_ID",e.yytext),32;case 76:return t.getLogger().debug("Lex: EOF",e.yytext),8;case 79:return"NODE_DESCR";case 81:t.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:t.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return t.getLogger().debug("LEX: NODE_DESCR:",e.yytext),"NODE_DESCR";case 84:t.getLogger().debug("LEX POPPING"),this.popState();break;case 85:t.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (right): dir:",e.yytext),"DIR";case 87:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (left):",e.yytext),"DIR";case 88:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (x):",e.yytext),"DIR";case 89:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (y):",e.yytext),"DIR";case 90:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (up):",e.yytext),"DIR";case 91:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (down):",e.yytext),"DIR";case 92:return e.yytext="]>",t.getLogger().debug("Lex (ARROW_DIR end):",e.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 94:case 95:case 96:return t.getLogger().debug("Lex: LINK",e.yytext),15;case 97:case 98:case 99:return t.getLogger().debug("Lex: START_LINK",e.yytext),this.pushState("LLABEL"),16;case 101:return t.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 103:case 104:return this.popState(),t.getLogger().debug("Lex: LINK",e.yytext),15;case 105:return t.getLogger().debug("Lex: COLON",e.yytext),e.yytext=e.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}}}();function m(){this.yy={}}return x.lexer=f,(0,l.K2)(m,"Parser"),m.prototype=x,x.Parser=m,new m}();p.parser=p;var y=p,b=new Map,x=[],f=new Map,m="color",w="fill",_=(0,l.D7)(),L=new Map,k=(0,l.K2)(t=>l.Y2.sanitizeText(t,_),"sanitizeText"),S=(0,l.K2)(function(t,e=""){let r=L.get(t);r||(r={id:t,styles:[],textStyles:[]},L.set(t,r)),null!=e&&e.split(",").forEach(t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(m).exec(t)){const t=e.replace(w,"bgFill").replace(m,w);r.textStyles.push(t)}r.styles.push(e)})},"addStyleClass"),v=(0,l.K2)(function(t,e=""){const r=b.get(t);null!=e&&(r.styles=e.split(","))},"addStyle2Node"),E=(0,l.K2)(function(t,e){t.split(",").forEach(function(t){let r=b.get(t);if(void 0===r){const e=t.trim();r={id:e,type:"na",children:[]},b.set(e,r)}r.classes||(r.classes=[]),r.classes.push(e)})},"setCssClass"),D=(0,l.K2)((t,e)=>{const r=t.flat(),a=[];for(const s of r)if(s.label&&(s.label=k(s.label)),"classDef"!==s.type)if("applyClass"!==s.type)if("applyStyles"!==s.type)if("column-setting"===s.type)e.columns=s.columns??-1;else if("edge"===s.type){const t=(f.get(s.id)??0)+1;f.set(s.id,t),s.id=t+"-"+s.id,x.push(s)}else{s.label||("composite"===s.type?s.label="":s.label=s.id);const t=b.get(s.id);if(void 0===t?b.set(s.id,s):("na"!==s.type&&(t.type=s.type),s.label!==s.id&&(t.label=s.label)),s.children&&D(s.children,s),"space"===s.type){const t=s.width??1;for(let e=0;e{l.Rm.debug("Clear called"),(0,l.IU)(),R={id:"root",type:"composite",children:[],columns:-1},b=new Map([["root",R]]),C=[],L=new Map,x=[],f=new Map},"clear");function N(t){switch(l.Rm.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return l.Rm.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function $(t){return l.Rm.debug("typeStr2Type",t),"=="===t?"thick":"normal"}function T(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}(0,l.K2)(N,"typeStr2Type"),(0,l.K2)($,"edgeTypeStr2Type"),(0,l.K2)(T,"edgeStrToEdgeData");var A=0,I=(0,l.K2)(()=>(A++,"id-"+Math.random().toString(36).substr(2,12)+"-"+A),"generateId"),O=(0,l.K2)(t=>{R.children=t,D(t,R),C=R.children},"setHierarchy"),B=(0,l.K2)(t=>{const e=b.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),z=(0,l.K2)(()=>[...b.values()],"getBlocksFlat"),M=(0,l.K2)(()=>C||[],"getBlocks"),P=(0,l.K2)(()=>x,"getEdges"),Y=(0,l.K2)(t=>b.get(t),"getBlock"),F=(0,l.K2)(t=>{b.set(t.id,t)},"setBlock"),j=(0,l.K2)(()=>l.Rm,"getLogger"),W=(0,l.K2)(function(){return L},"getClasses"),X={getConfig:(0,l.K2)(()=>(0,l.zj)().block,"getConfig"),typeStr2Type:N,edgeTypeStr2Type:$,edgeStrToEdgeData:T,getLogger:j,getBlocksFlat:z,getBlocks:M,getEdges:P,setHierarchy:O,getBlock:Y,setBlock:F,getColumns:B,getClasses:W,clear:K,generateId:I},H=(0,l.K2)((t,e)=>{const r=d.A,a=r(t,"r"),s=r(t,"g"),i=r(t,"b");return h.A(a,s,i,e)},"fade"),U=(0,l.K2)(t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span,p {\n color: ${t.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${H(t.edgeLabelBackground,.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${H(t.mainBkg,.5)};\n fill: ${H(t.clusterBkg,.5)};\n stroke: ${H(t.clusterBorder,.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span,p {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n ${(0,a.o)()}\n`,"getStyles"),Z=(0,l.K2)((t,e,r,a)=>{e.forEach(e=>{q[e](t,r,a)})},"insertMarkers"),q={extension:(0,l.K2)((t,e,r)=>{l.Rm.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),composition:(0,l.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),aggregation:(0,l.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),dependency:(0,l.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),lollipop:(0,l.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),point:(0,l.K2)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),circle:(0,l.K2)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),cross:(0,l.K2)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),barb:(0,l.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb")},G=Z,J=(0,l.D7)()?.block?.padding??8;function V(t,e){if(0===t||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(1===t)return{px:0,py:e};return{px:e%t,py:Math.floor(e/t)}}(0,l.K2)(V,"calculateBlockPosition");var Q=(0,l.K2)(t=>{let e=0,r=0;for(const a of t.children){const{width:s,height:i,x:n,y:o}=a.size??{width:0,height:0,x:0,y:0};l.Rm.debug("getMaxChildSize abc95 child:",a.id,"width:",s,"height:",i,"x:",n,"y:",o,a.type),"space"!==a.type&&(s>e&&(e=s/(t.widthInColumns??1)),i>r&&(r=i))}return{width:e,height:r}},"getMaxChildSize");function tt(t,e,r=0,a=0){l.Rm.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"siblingWidth",r),t?.size?.width||(t.size={width:r,height:a,x:0,y:0});let s=0,i=0;if(t.children?.length>0){for(const r of t.children)tt(r,e);const n=Q(t);s=n.width,i=n.height,l.Rm.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",s,i);for(const e of t.children)e.size&&(l.Rm.debug(`abc95 Setting size of children of ${t.id} id=${e.id} ${s} ${i} ${JSON.stringify(e.size)}`),e.size.width=s*(e.widthInColumns??1)+J*((e.widthInColumns??1)-1),e.size.height=i,e.size.x=0,e.size.y=0,l.Rm.debug(`abc95 updating size of ${t.id} children child:${e.id} maxWidth:${s} maxHeight:${i}`));for(const r of t.children)tt(r,e,s,i);const o=t.columns??-1;let c=0;for(const e of t.children)c+=e.widthInColumns??1;let d=t.children.length;o>0&&o0?Math.min(t.children.length,o):t.children.length;if(e>0){const r=(g-e*J-J)/e;l.Rm.debug("abc95 (growing to fit) width",t.id,g,t.size?.width,r);for(const e of t.children)e.size&&(e.size.width=r)}}t.size={width:g,height:u,x:0,y:0}}l.Rm.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function et(t,e){l.Rm.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);const r=t.columns??-1;if(l.Rm.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){const a=t?.children[0]?.size?.width??0,s=t.children.length*a+(t.children.length-1)*J;l.Rm.debug("widthOfChildren 88",s,"posX");let i=0;l.Rm.debug("abc91 block?.size?.x",t.id,t?.size?.x);let n=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-J,o=0;for(const c of t.children){const a=t;if(!c.size)continue;const{width:s,height:d}=c.size,{px:h,py:g}=V(r,i);if(g!=o&&(o=g,n=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-J,l.Rm.debug("New row in layout for block",t.id," and child ",c.id,o)),l.Rm.debug(`abc89 layout blocks (child) id: ${c.id} Pos: ${i} (px, py) ${h},${g} (${a?.size?.x},${a?.size?.y}) parent: ${a.id} width: ${s}${J}`),a.size){const t=s/2;c.size.x=n+J+t,l.Rm.debug(`abc91 layout blocks (calc) px, pyid:${c.id} startingPos=X${n} new startingPosX${c.size.x} ${t} padding=${J} width=${s} halfWidth=${t} => x:${c.size.x} y:${c.size.y} ${c.widthInColumns} (width * (child?.w || 1)) / 2 ${s*(c?.widthInColumns??1)/2}`),n=c.size.x+t,c.size.y=a.size.y-a.size.height/2+g*(d+J)+d/2+J,l.Rm.debug(`abc88 layout blocks (calc) px, pyid:${c.id}startingPosX${n}${J}${t}=>x:${c.size.x}y:${c.size.y}${c.widthInColumns}(width * (child?.w || 1)) / 2${s*(c?.widthInColumns??1)/2}`)}c.children&&et(c,e),i+=c?.widthInColumns??1,l.Rm.debug("abc88 columnsPos",c,i)}}l.Rm.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function rt(t,{minX:e,minY:r,maxX:a,maxY:s}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&"root"!==t.id){const{x:i,y:n,width:o,height:l}=t.size;i-o/2a&&(a=i+o/2),n+l/2>s&&(s=n+l/2)}if(t.children)for(const i of t.children)({minX:e,minY:r,maxX:a,maxY:s}=rt(i,{minX:e,minY:r,maxX:a,maxY:s}));return{minX:e,minY:r,maxX:a,maxY:s}}function at(t){const e=t.getBlock("root");if(!e)return;tt(e,t,0,0),et(e,t),l.Rm.debug("getBlocks",JSON.stringify(e,null,2));const{minX:r,minY:a,maxX:s,maxY:i}=rt(e);return{x:r,y:a,width:s-r,height:i-a}}function st(t,e){e&&t.attr("style",e)}function it(t){const e=(0,g.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),a=t.label,s=t.isNode?"nodeLabel":"edgeLabel",i=r.append("span");return i.html(a),st(i,t.labelStyle),i.attr("class",s),st(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}(0,l.K2)(tt,"setBlockSizes"),(0,l.K2)(et,"layoutBlocks"),(0,l.K2)(rt,"findBounds"),(0,l.K2)(at,"layout"),(0,l.K2)(st,"applyStyle"),(0,l.K2)(it,"addHtmlLabel");var nt=(0,l.K2)(async(t,e,r,a)=>{let s=t||"";if("object"==typeof s&&(s=s[0]),(0,l._3)((0,l.D7)().flowchart.htmlLabels)){s=s.replace(/\\n|\n/g," "),l.Rm.debug("vertexText"+s);return it({isNode:a,label:await(0,n.hE)((0,o.Sm)(s)),labelStyle:e.replace("fill:","color:")})}{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let a=[];a="string"==typeof s?s.split(/\\n|\n| /gi):Array.isArray(s)?s:[];for(const e of a){const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}},"createLabel"),ot=(0,l.K2)((t,e,r,a,s)=>{e.arrowTypeStart&&ct(t,"start",e.arrowTypeStart,r,a,s),e.arrowTypeEnd&&ct(t,"end",e.arrowTypeEnd,r,a,s)},"addEdgeMarkers"),lt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},ct=(0,l.K2)((t,e,r,a,s,i)=>{const n=lt[r];if(!n)return void l.Rm.warn(`Unknown arrow type: ${r}`);const o="start"===e?"Start":"End";t.attr(`marker-${e}`,`url(${a}#${s}_${i}-${n}${o})`)},"addEdgeMarker"),dt={},ht={},gt=(0,l.K2)(async(t,e)=>{const r=(0,l.D7)(),a=(0,l._3)(r.flowchart.htmlLabels),s="markdown"===e.labelType?(0,n.GZ)(t,e.label,{style:e.labelStyle,useHtmlLabels:a,addSvgBackground:!0},r):await nt(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),o=i.insert("g").attr("class","label");o.node().appendChild(s);let c,d=s.getBBox();if(a){const t=s.children[0],e=(0,g.Ltv)(s);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}if(o.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),dt[e.id]=i,e.width=d.width,e.height=d.height,e.startLabelLeft){const r=await nt(e.startLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),s=a.insert("g").attr("class","inner");c=s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),ht[e.id]||(ht[e.id]={}),ht[e.id].startLeft=a,ut(c,e.startLabelLeft)}if(e.startLabelRight){const r=await nt(e.startLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),s=a.insert("g").attr("class","inner");c=a.node().appendChild(r),s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),ht[e.id]||(ht[e.id]={}),ht[e.id].startRight=a,ut(c,e.startLabelRight)}if(e.endLabelLeft){const r=await nt(e.endLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),s=a.insert("g").attr("class","inner");c=s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),a.node().appendChild(r),ht[e.id]||(ht[e.id]={}),ht[e.id].endLeft=a,ut(c,e.endLabelLeft)}if(e.endLabelRight){const r=await nt(e.endLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),s=a.insert("g").attr("class","inner");c=s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),a.node().appendChild(r),ht[e.id]||(ht[e.id]={}),ht[e.id].endRight=a,ut(c,e.endLabelRight)}return s},"insertEdgeLabel");function ut(t,e){(0,l.D7)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}(0,l.K2)(ut,"setTerminalWidth");var pt=(0,l.K2)((t,e)=>{l.Rm.debug("Moving label abc88 ",t.id,t.label,dt[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath;const a=(0,l.D7)(),{subGraphTitleTotalMargin:s}=(0,i.O)(a);if(t.label){const a=dt[t.id];let i=t.x,n=t.y;if(r){const a=o._K.calcLabelPosition(r);l.Rm.debug("Moving label "+t.label+" from (",i,",",n,") to (",a.x,",",a.y,") abc88"),e.updatedPath&&(i=a.x,n=a.y)}a.attr("transform",`translate(${i}, ${n+s/2})`)}if(t.startLabelLeft){const e=ht[t.id].startLeft;let a=t.x,s=t.y;if(r){const e=o._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);a=e.x,s=e.y}e.attr("transform",`translate(${a}, ${s})`)}if(t.startLabelRight){const e=ht[t.id].startRight;let a=t.x,s=t.y;if(r){const e=o._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);a=e.x,s=e.y}e.attr("transform",`translate(${a}, ${s})`)}if(t.endLabelLeft){const e=ht[t.id].endLeft;let a=t.x,s=t.y;if(r){const e=o._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);a=e.x,s=e.y}e.attr("transform",`translate(${a}, ${s})`)}if(t.endLabelRight){const e=ht[t.id].endRight;let a=t.x,s=t.y;if(r){const e=o._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);a=e.x,s=e.y}e.attr("transform",`translate(${a}, ${s})`)}},"positionEdgeLabel"),yt=(0,l.K2)((t,e)=>{const r=t.x,a=t.y,s=Math.abs(e.x-r),i=Math.abs(e.y-a),n=t.width/2,o=t.height/2;return s>=n||i>=o},"outsideNode"),bt=(0,l.K2)((t,e,r)=>{l.Rm.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const a=t.x,s=t.y,i=Math.abs(a-r.x),n=t.width/2;let o=r.xMath.abs(a-e.x)*c){let t=r.y{l.Rm.debug("abc88 cutPathAtIntersect",t,e);let r=[],a=t[0],s=!1;return t.forEach(t=>{if(yt(e,t)||s)a=t,s||r.push(t);else{const i=bt(e,a,t);let n=!1;r.forEach(t=>{n=n||t.x===i.x&&t.y===i.y}),r.some(t=>t.x===i.x&&t.y===i.y)||r.push(i),s=!0}}),r},"cutPathAtIntersect"),ft=(0,l.K2)(function(t,e,r,a,i,n,o){let c=r.points;l.Rm.debug("abc88 InsertEdge: edge=",r,"e=",e);let d=!1;const h=n.node(e.v);var u=n.node(e.w);u?.intersect&&h?.intersect&&(c=c.slice(1,r.points.length-1),c.unshift(h.intersect(c[0])),c.push(u.intersect(c[c.length-1]))),r.toCluster&&(l.Rm.debug("to cluster abc88",a[r.toCluster]),c=xt(r.points,a[r.toCluster].node),d=!0),r.fromCluster&&(l.Rm.debug("from cluster abc88",a[r.fromCluster]),c=xt(c.reverse(),a[r.fromCluster].node).reverse(),d=!0);const p=c.filter(t=>!Number.isNaN(t.y));let y=g.qrM;!r.curve||"graph"!==i&&"flowchart"!==i||(y=r.curve);const{x:b,y:x}=(0,s.R)(r),f=(0,g.n8j)().x(b).y(x).curve(y);let m;switch(r.thickness){case"normal":m="edge-thickness-normal";break;case"thick":case"invisible":m="edge-thickness-thick";break;default:m=""}switch(r.pattern){case"solid":m+=" edge-pattern-solid";break;case"dotted":m+=" edge-pattern-dotted";break;case"dashed":m+=" edge-pattern-dashed"}const w=t.append("path").attr("d",f(p)).attr("id",r.id).attr("class"," "+m+(r.classes?" "+r.classes:"")).attr("style",r.style);let _="";((0,l.D7)().flowchart.arrowMarkerAbsolute||(0,l.D7)().state.arrowMarkerAbsolute)&&(_=(0,l.ID)(!0)),ot(w,r,_,o,i);let L={};return d&&(L.updatedPath=c),L.originalPath=r.points,L},"insertEdge"),mt=(0,l.K2)(t=>{const e=new Set;for(const r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r)}return e},"expandAndDeduplicateDirections"),wt=(0,l.K2)((t,e,r)=>{const a=mt(t),s=e.height+2*r.padding,i=s/2,n=e.width+2*i+r.padding,o=r.padding/2;return a.has("right")&&a.has("left")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:i,y:0},{x:n/2,y:2*o},{x:n-i,y:0},{x:n,y:0},{x:n,y:-s/3},{x:n+2*o,y:-s/2},{x:n,y:-2*s/3},{x:n,y:-s},{x:n-i,y:-s},{x:n/2,y:-s-2*o},{x:i,y:-s},{x:0,y:-s},{x:0,y:-2*s/3},{x:-2*o,y:-s/2},{x:0,y:-s/3}]:a.has("right")&&a.has("left")&&a.has("up")?[{x:i,y:0},{x:n-i,y:0},{x:n,y:-s/2},{x:n-i,y:-s},{x:i,y:-s},{x:0,y:-s/2}]:a.has("right")&&a.has("left")&&a.has("down")?[{x:0,y:0},{x:i,y:-s},{x:n-i,y:-s},{x:n,y:0}]:a.has("right")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:n,y:-i},{x:n,y:-s+i},{x:0,y:-s}]:a.has("left")&&a.has("up")&&a.has("down")?[{x:n,y:0},{x:0,y:-i},{x:0,y:-s+i},{x:n,y:-s}]:a.has("right")&&a.has("left")?[{x:i,y:0},{x:i,y:-o},{x:n-i,y:-o},{x:n-i,y:0},{x:n,y:-s/2},{x:n-i,y:-s},{x:n-i,y:-s+o},{x:i,y:-s+o},{x:i,y:-s},{x:0,y:-s/2}]:a.has("up")&&a.has("down")?[{x:n/2,y:0},{x:0,y:-o},{x:i,y:-o},{x:i,y:-s+o},{x:0,y:-s+o},{x:n/2,y:-s},{x:n,y:-s+o},{x:n-i,y:-s+o},{x:n-i,y:-o},{x:n,y:-o}]:a.has("right")&&a.has("up")?[{x:0,y:0},{x:n,y:-i},{x:0,y:-s}]:a.has("right")&&a.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-s}]:a.has("left")&&a.has("up")?[{x:n,y:0},{x:0,y:-i},{x:n,y:-s}]:a.has("left")&&a.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-s}]:a.has("right")?[{x:i,y:-o},{x:i,y:-o},{x:n-i,y:-o},{x:n-i,y:0},{x:n,y:-s/2},{x:n-i,y:-s},{x:n-i,y:-s+o},{x:i,y:-s+o},{x:i,y:-s+o}]:a.has("left")?[{x:i,y:0},{x:i,y:-o},{x:n-i,y:-o},{x:n-i,y:-s+o},{x:i,y:-s+o},{x:i,y:-s},{x:0,y:-s/2}]:a.has("up")?[{x:i,y:-o},{x:i,y:-s+o},{x:0,y:-s+o},{x:n/2,y:-s},{x:n,y:-s+o},{x:n-i,y:-s+o},{x:n-i,y:-o}]:a.has("down")?[{x:n/2,y:0},{x:0,y:-o},{x:i,y:-o},{x:i,y:-s+o},{x:n-i,y:-s+o},{x:n-i,y:-o},{x:n,y:-o}]:[{x:0,y:0}]},"getArrowPoints");function _t(t,e){return t.intersect(e)}(0,l.K2)(_t,"intersectNode");var Lt=_t;function kt(t,e,r,a){var s=t.x,i=t.y,n=s-a.x,o=i-a.y,l=Math.sqrt(e*e*o*o+r*r*n*n),c=Math.abs(e*r*n/l);a.x0}(0,l.K2)(Dt,"intersectLine"),(0,l.K2)(Ct,"sameSign");var Rt=Dt,Kt=Nt;function Nt(t,e,r){var a=t.x,s=t.y,i=[],n=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){n=Math.min(n,t.x),o=Math.min(o,t.y)}):(n=Math.min(n,e.x),o=Math.min(o,e.y));for(var l=a-t.width/2-n,c=s-t.height/2-o,d=0;d1&&i.sort(function(t,e){var a=t.x-r.x,s=t.y-r.y,i=Math.sqrt(a*a+s*s),n=e.x-r.x,o=e.y-r.y,l=Math.sqrt(n*n+o*o);return i{var r,a,s=t.x,i=t.y,n=e.x-s,o=e.y-i,l=t.width/2,c=t.height/2;return Math.abs(o)*l>Math.abs(n)*c?(o<0&&(c=-c),r=0===o?0:c*n/o,a=c):(n<0&&(l=-l),r=l,a=0===n?0:l*o/n),{x:s+r,y:i+a}},"intersectRect")},Tt=(0,l.K2)(async(t,e,r,a)=>{const s=(0,l.D7)();let i;const c=e.useHtmlLabels||(0,l._3)(s.flowchart.htmlLabels);i=r||"node default";const d=t.insert("g").attr("class",i).attr("id",e.domId||e.id),h=d.insert("g").attr("class","label").attr("style",e.labelStyle);let u;u=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const p=h.node();let y;y="markdown"===e.labelType?(0,n.GZ)(h,(0,l.jZ)((0,o.Sm)(u),s),{useHtmlLabels:c,width:e.width||s.flowchart.wrappingWidth,classes:"markdown-node-label"},s):p.appendChild(await nt((0,l.jZ)((0,o.Sm)(u),s),e.labelStyle,!1,a));let b=y.getBBox();const x=e.padding/2;if((0,l._3)(s.flowchart.htmlLabels)){const t=y.children[0],e=(0,g.Ltv)(y),r=t.getElementsByTagName("img");if(r){const t=""===u.replace(/ ]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function a(){if(e.style.display="flex",e.style.flexDirection="column",t){const t=s.fontSize?s.fontSize:window.getComputedStyle(document.body).fontSize,r=5,a=parseInt(t,10)*r+"px";e.style.minWidth=a,e.style.maxWidth=a}else e.style.width="100%";r(e)}(0,l.K2)(a,"setupImage"),setTimeout(()=>{e.complete&&a()}),e.addEventListener("error",a),e.addEventListener("load",a)})))}b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}return c?h.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"):h.attr("transform","translate(0, "+-b.height/2+")"),e.centerLabel&&h.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),h.insert("rect",":first-child"),{shapeSvg:d,bbox:b,halfPadding:x,label:h}},"labelHelper"),At=(0,l.K2)((t,e)=>{const r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");function It(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}(0,l.K2)(It,"insertPolygonShape");var Ot=(0,l.K2)(async(t,e)=>{e.useHtmlLabels||(0,l.D7)().flowchart.htmlLabels||(e.centerLabel=!0);const{shapeSvg:r,bbox:a,halfPadding:s}=await Tt(t,e,"node "+e.classes,!0);l.Rm.info("Classes = ",e.classes);const i=r.insert("rect",":first-child");return i.attr("rx",e.rx).attr("ry",e.ry).attr("x",-a.width/2-s).attr("y",-a.height/2-s).attr("width",a.width+e.padding).attr("height",a.height+e.padding),At(e,i),e.intersect=function(t){return $t.rect(e,t)},r},"note"),Bt=(0,l.K2)(t=>t?" "+t:"","formatClass"),zt=(0,l.K2)((t,e)=>`${e||"node default"}${Bt(t.classes)} ${Bt(t.class)}`,"getClassesFromNode"),Mt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding+(a.height+e.padding),i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];l.Rm.info("Question main (Circle)");const n=It(r,s,s,i);return n.attr("style",e.style),At(e,n),e.intersect=function(t){return l.Rm.warn("Intersect called"),$t.polygon(e,i,t)},r},"question"),Pt=(0,l.K2)((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];return r.insert("polygon",":first-child").attr("points",a.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return $t.circle(e,14,t)},r},"choice"),Yt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.height+e.padding,i=s/4,n=a.width+2*i+e.padding,o=[{x:i,y:0},{x:n-i,y:0},{x:n,y:-s/2},{x:n-i,y:-s},{x:i,y:-s},{x:0,y:-s/2}],l=It(r,n,s,o);return l.attr("style",e.style),At(e,l),e.intersect=function(t){return $t.polygon(e,o,t)},r},"hexagon"),Ft=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,void 0,!0),s=a.height+2*e.padding,i=s/2,n=a.width+2*i+e.padding,o=wt(e.directions,a,e),l=It(r,n,s,o);return l.attr("style",e.style),At(e,l),e.intersect=function(t){return $t.polygon(e,o,t)},r},"block_arrow"),jt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:-i/2,y:0},{x:s,y:0},{x:s,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}];return It(r,s,i,n).attr("style",e.style),e.width=s+i,e.height=i,e.intersect=function(t){return $t.polygon(e,n,t)},r},"rect_left_inv_arrow"),Wt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:-2*i/6,y:0},{x:s-i/6,y:0},{x:s+2*i/6,y:-i},{x:i/6,y:-i}],o=It(r,s,i,n);return o.attr("style",e.style),At(e,o),e.intersect=function(t){return $t.polygon(e,n,t)},r},"lean_right"),Xt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:2*i/6,y:0},{x:s+i/6,y:0},{x:s-2*i/6,y:-i},{x:-i/6,y:-i}],o=It(r,s,i,n);return o.attr("style",e.style),At(e,o),e.intersect=function(t){return $t.polygon(e,n,t)},r},"lean_left"),Ht=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:-2*i/6,y:0},{x:s+2*i/6,y:0},{x:s-i/6,y:-i},{x:i/6,y:-i}],o=It(r,s,i,n);return o.attr("style",e.style),At(e,o),e.intersect=function(t){return $t.polygon(e,n,t)},r},"trapezoid"),Ut=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:i/6,y:0},{x:s-i/6,y:0},{x:s+2*i/6,y:-i},{x:-2*i/6,y:-i}],o=It(r,s,i,n);return o.attr("style",e.style),At(e,o),e.intersect=function(t){return $t.polygon(e,n,t)},r},"inv_trapezoid"),Zt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:0,y:0},{x:s+i/2,y:0},{x:s,y:-i/2},{x:s+i/2,y:-i},{x:0,y:-i}],o=It(r,s,i,n);return o.attr("style",e.style),At(e,o),e.intersect=function(t){return $t.polygon(e,n,t)},r},"rect_right_inv_arrow"),qt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=s/2,n=i/(2.5+s/50),o=a.height+n+e.padding,l="M 0,"+n+" a "+i+","+n+" 0,0,0 "+s+" 0 a "+i+","+n+" 0,0,0 "+-s+" 0 l 0,"+o+" a "+i+","+n+" 0,0,0 "+s+" 0 l 0,"+-o,c=r.attr("label-offset-y",n).insert("path",":first-child").attr("style",e.style).attr("d",l).attr("transform","translate("+-s/2+","+-(o/2+n)+")");return At(e,c),e.intersect=function(t){const r=$t.rect(e,t),a=r.x-e.x;if(0!=i&&(Math.abs(a)e.height/2-n)){let s=n*n*(1-a*a/(i*i));0!=s&&(s=Math.sqrt(s)),s=n-s,t.y-e.y>0&&(s=-s),r.y+=s}return r},r},"cylinder"),Gt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Tt(t,e,"node "+e.classes+" "+e.class,!0),i=r.insert("rect",":first-child"),n=e.positioned?e.width:a.width+e.padding,o=e.positioned?e.height:a.height+e.padding,c=e.positioned?-n/2:-a.width/2-s,d=e.positioned?-o/2:-a.height/2-s;if(i.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",c).attr("y",d).attr("width",n).attr("height",o),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Qt(i,e.props.borders,n,o),t.delete("borders")),t.forEach(t=>{l.Rm.warn(`Unknown node property ${t}`)})}return At(e,i),e.intersect=function(t){return $t.rect(e,t)},r},"rect"),Jt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Tt(t,e,"node "+e.classes,!0),i=r.insert("rect",":first-child"),n=e.positioned?e.width:a.width+e.padding,o=e.positioned?e.height:a.height+e.padding,c=e.positioned?-n/2:-a.width/2-s,d=e.positioned?-o/2:-a.height/2-s;if(i.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",c).attr("y",d).attr("width",n).attr("height",o),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Qt(i,e.props.borders,n,o),t.delete("borders")),t.forEach(t=>{l.Rm.warn(`Unknown node property ${t}`)})}return At(e,i),e.intersect=function(t){return $t.rect(e,t)},r},"composite"),Vt=(0,l.K2)(async(t,e)=>{const{shapeSvg:r}=await Tt(t,e,"label",!0);l.Rm.trace("Classes = ",e.class);const a=r.insert("rect",":first-child");if(a.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Qt(a,e.props.borders,0,0),t.delete("borders")),t.forEach(t=>{l.Rm.warn(`Unknown node property ${t}`)})}return At(e,a),e.intersect=function(t){return $t.rect(e,t)},r},"labelRect");function Qt(t,e,r,a){const s=[],i=(0,l.K2)(t=>{s.push(t,0)},"addBorder"),n=(0,l.K2)(t=>{s.push(0,t)},"skipBorder");e.includes("t")?(l.Rm.debug("add top border"),i(r)):n(r),e.includes("r")?(l.Rm.debug("add right border"),i(a)):n(a),e.includes("b")?(l.Rm.debug("add bottom border"),i(r)):n(r),e.includes("l")?(l.Rm.debug("add left border"),i(a)):n(a),t.attr("stroke-dasharray",s.join(" "))}(0,l.K2)(Qt,"applyNodePropertyBorders");var te=(0,l.K2)(async(t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";const a=t.insert("g").attr("class",r).attr("id",e.domId||e.id),s=a.insert("rect",":first-child"),i=a.insert("line"),n=a.insert("g").attr("class","label"),o=e.labelText.flat?e.labelText.flat():e.labelText;let c="";c="object"==typeof o?o[0]:o,l.Rm.info("Label text abc79",c,o,"object"==typeof o);const d=n.node().appendChild(await nt(c,e.labelStyle,!0,!0));let h={width:0,height:0};if((0,l._3)((0,l.D7)().flowchart.htmlLabels)){const t=d.children[0],e=(0,g.Ltv)(d);h=t.getBoundingClientRect(),e.attr("width",h.width),e.attr("height",h.height)}l.Rm.info("Text 2",o);const u=o.slice(1,o.length);let p=d.getBBox();const y=n.node().appendChild(await nt(u.join?u.join(" "):u,e.labelStyle,!0,!0));if((0,l._3)((0,l.D7)().flowchart.htmlLabels)){const t=y.children[0],e=(0,g.Ltv)(y);h=t.getBoundingClientRect(),e.attr("width",h.width),e.attr("height",h.height)}const b=e.padding/2;return(0,g.Ltv)(y).attr("transform","translate( "+(h.width>p.width?0:(p.width-h.width)/2)+", "+(p.height+b+5)+")"),(0,g.Ltv)(d).attr("transform","translate( "+(h.width{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.height+e.padding,i=a.width+s/4+e.padding,n=r.insert("rect",":first-child").attr("style",e.style).attr("rx",s/2).attr("ry",s/2).attr("x",-i/2).attr("y",-s/2).attr("width",i).attr("height",s);return At(e,n),e.intersect=function(t){return $t.rect(e,t)},r},"stadium"),re=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Tt(t,e,zt(e,void 0),!0),i=r.insert("circle",":first-child");return i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s).attr("width",a.width+e.padding).attr("height",a.height+e.padding),l.Rm.info("Circle main"),At(e,i),e.intersect=function(t){return l.Rm.info("Circle intersect",e,a.width/2+s,t),$t.circle(e,a.width/2+s,t)},r},"circle"),ae=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Tt(t,e,zt(e,void 0),!0),i=r.insert("g",":first-child"),n=i.insert("circle"),o=i.insert("circle");return i.attr("class",e.class),n.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s+5).attr("width",a.width+e.padding+10).attr("height",a.height+e.padding+10),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s).attr("width",a.width+e.padding).attr("height",a.height+e.padding),l.Rm.info("DoubleCircle main"),At(e,n),e.intersect=function(t){return l.Rm.info("DoubleCircle intersect",e,a.width/2+s+5,t),$t.circle(e,a.width/2+s+5,t)},r},"doublecircle"),se=(0,l.K2)(async(t,e)=>{const{shapeSvg:r,bbox:a}=await Tt(t,e,zt(e,void 0),!0),s=a.width+e.padding,i=a.height+e.padding,n=[{x:0,y:0},{x:s,y:0},{x:s,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-i},{x:-8,y:-i},{x:-8,y:0}],o=It(r,s,i,n);return o.attr("style",e.style),At(e,o),e.intersect=function(t){return $t.polygon(e,n,t)},r},"subroutine"),ie=(0,l.K2)((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),At(e,a),e.intersect=function(t){return $t.circle(e,7,t)},r},"start"),ne=(0,l.K2)((t,e,r)=>{const a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let s=70,i=10;"LR"===r&&(s=10,i=70);const n=a.append("rect").attr("x",-1*s/2).attr("y",-1*i/2).attr("width",s).attr("height",i).attr("class","fork-join");return At(e,n),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return $t.rect(e,t)},a},"forkJoin"),oe={rhombus:Mt,composite:Jt,question:Mt,rect:Gt,labelRect:Vt,rectWithTitle:te,choice:Pt,circle:re,doublecircle:ae,stadium:ee,hexagon:Yt,block_arrow:Ft,rect_left_inv_arrow:jt,lean_right:Wt,lean_left:Xt,trapezoid:Ht,inv_trapezoid:Ut,rect_right_inv_arrow:Zt,cylinder:qt,start:ie,end:(0,l.K2)((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),s=r.insert("circle",":first-child");return s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),At(e,s),e.intersect=function(t){return $t.circle(e,7,t)},r},"end"),note:Ot,subroutine:se,fork:ne,join:ne,class_box:(0,l.K2)(async(t,e)=>{const r=e.padding/2;let a;a=e.classes?"node "+e.classes:"node default";const s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),i=s.insert("rect",":first-child"),n=s.insert("line"),o=s.insert("line");let c=0,d=4;const h=s.insert("g").attr("class","label");let u=0;const p=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",b=h.node().appendChild(await nt(y,e.labelStyle,!0,!0));let x=b.getBBox();if((0,l._3)((0,l.D7)().flowchart.htmlLabels)){const t=b.children[0],e=(0,g.Ltv)(b);x=t.getBoundingClientRect(),e.attr("width",x.width),e.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+4,c+=x.width);let f=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&((0,l.D7)().flowchart.htmlLabels?f+="<"+e.classData.type+">":f+="<"+e.classData.type+">");const m=h.node().appendChild(await nt(f,e.labelStyle,!0,!0));(0,g.Ltv)(m).attr("class","classTitle");let w=m.getBBox();if((0,l._3)((0,l.D7)().flowchart.htmlLabels)){const t=m.children[0],e=(0,g.Ltv)(m);w=t.getBoundingClientRect(),e.attr("width",w.width),e.attr("height",w.height)}d+=w.height+4,w.width>c&&(c=w.width);const _=[];e.classData.members.forEach(async t=>{const r=t.getDisplayDetails();let a=r.displayText;(0,l.D7)().flowchart.htmlLabels&&(a=a.replace(/ /g,">"));const s=h.node().appendChild(await nt(a,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let i=s.getBBox();if((0,l._3)((0,l.D7)().flowchart.htmlLabels)){const t=s.children[0],e=(0,g.Ltv)(s);i=t.getBoundingClientRect(),e.attr("width",i.width),e.attr("height",i.height)}i.width>c&&(c=i.width),d+=i.height+4,_.push(s)}),d+=8;const L=[];if(e.classData.methods.forEach(async t=>{const r=t.getDisplayDetails();let a=r.displayText;(0,l.D7)().flowchart.htmlLabels&&(a=a.replace(//g,">"));const s=h.node().appendChild(await nt(a,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let i=s.getBBox();if((0,l._3)((0,l.D7)().flowchart.htmlLabels)){const t=s.children[0],e=(0,g.Ltv)(s);i=t.getBoundingClientRect(),e.attr("width",i.width),e.attr("height",i.height)}i.width>c&&(c=i.width),d+=i.height+4,L.push(s)}),d+=8,p){let t=(c-x.width)/2;(0,g.Ltv)(b).attr("transform","translate( "+(-1*c/2+t)+", "+-1*d/2+")"),u=x.height+4}let k=(c-w.width)/2;return(0,g.Ltv)(m).attr("transform","translate( "+(-1*c/2+k)+", "+(-1*d/2+u)+")"),u+=w.height+4,n.attr("class","divider").attr("x1",-c/2-r).attr("x2",c/2+r).attr("y1",-d/2-r+8+u).attr("y2",-d/2-r+8+u),u+=8,_.forEach(t=>{(0,g.Ltv)(t).attr("transform","translate( "+-c/2+", "+(-1*d/2+u+4)+")");const e=t?.getBBox();u+=(e?.height??0)+4}),u+=8,o.attr("class","divider").attr("x1",-c/2-r).attr("x2",c/2+r).attr("y1",-d/2-r+8+u).attr("y2",-d/2-r+8+u),u+=8,L.forEach(t=>{(0,g.Ltv)(t).attr("transform","translate( "+-c/2+", "+(-1*d/2+u)+")");const e=t?.getBBox();u+=(e?.height??0)+4}),i.attr("style",e.style).attr("class","outer title-state").attr("x",-c/2-r).attr("y",-d/2-r).attr("width",c+e.padding).attr("height",d+e.padding),At(e,i),e.intersect=function(t){return $t.rect(e,t)},s},"class_box")},le={},ce=(0,l.K2)(async(t,e,r)=>{let a,s;if(e.link){let i;"sandbox"===(0,l.D7)().securityLevel?i="_top":e.linkTarget&&(i=e.linkTarget||"_blank"),a=t.insert("svg:a").attr("xlink:href",e.link).attr("target",i),s=await oe[e.shape](a,e,r)}else s=await oe[e.shape](t,e,r),a=s;return e.tooltip&&s.attr("title",e.tooltip),e.class&&s.attr("class","node default "+e.class),le[e.id]=a,e.haveCallback&&le[e.id].attr("class",le[e.id].attr("class")+" clickable"),a},"insertNode"),de=(0,l.K2)(t=>{const e=le[t.id];l.Rm.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode");function he(t,e,r=!1){const a=t;let s="default";(a?.classes?.length||0)>0&&(s=(a?.classes??[]).join(" ")),s+=" flowchart-label";let i,n=0,c="";switch(a.type){case"round":n=5,c="rect";break;case"composite":n=0,c="composite",i=0;break;case"square":case"group":default:c="rect";break;case"diamond":c="question";break;case"hexagon":c="hexagon";break;case"block_arrow":c="block_arrow";break;case"odd":case"rect_left_inv_arrow":c="rect_left_inv_arrow";break;case"lean_right":c="lean_right";break;case"lean_left":c="lean_left";break;case"trapezoid":c="trapezoid";break;case"inv_trapezoid":c="inv_trapezoid";break;case"circle":c="circle";break;case"ellipse":c="ellipse";break;case"stadium":c="stadium";break;case"subroutine":c="subroutine";break;case"cylinder":c="cylinder";break;case"doublecircle":c="doublecircle"}const d=(0,o.sM)(a?.styles??[]),h=a.label,g=a.size??{width:0,height:0,x:0,y:0};return{labelStyle:d.labelStyle,shape:c,labelText:h,rx:n,ry:n,class:s,style:d.style,id:a.id,directions:a.directions,width:g.width,height:g.height,x:g.x,y:g.y,positioned:r,intersect:void 0,type:a.type,padding:i??(0,l.zj)()?.block?.padding??0}}async function ge(t,e,r){const a=he(e,0,!1);if("group"===a.type)return;const s=(0,l.zj)(),i=await ce(t,a,{config:s}),n=i.node().getBBox(),o=r.getBlock(a.id);o.size={width:n.width,height:n.height,x:0,y:0,node:i},r.setBlock(o),i.remove()}async function ue(t,e,r){const a=he(e,0,!0);if("space"!==r.getBlock(a.id).type){const r=(0,l.zj)();await ce(t,a,{config:r}),e.intersect=a?.intersect,de(a)}}async function pe(t,e,r,a){for(const s of e)await a(t,s,r),s.children&&await pe(t,s.children,r,a)}async function ye(t,e,r){await pe(t,e,r,ge)}async function be(t,e,r){await pe(t,e,r,ue)}async function xe(t,e,r,a,s){const i=new u.T({multigraph:!0,compound:!0});i.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const n of r)n.size&&i.setNode(n.id,{width:n.size.width,height:n.size.height,intersect:n.intersect});for(const n of e)if(n.start&&n.end){const e=a.getBlock(n.start),r=a.getBlock(n.end);if(e?.size&&r?.size){const a=e.size,o=r.size,l=[{x:a.x,y:a.y},{x:a.x+(o.x-a.x)/2,y:a.y+(o.y-a.y)/2},{x:o.x,y:o.y}];ft(t,{v:n.start,w:n.end,name:n.id},{...n,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",i,s),n.label&&(await gt(t,{...n,label:n.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),pt({...n,x:l[1].x,y:l[1].y},{originalPath:l}))}}}(0,l.K2)(he,"getNodeFromBlock"),(0,l.K2)(ge,"calculateBlockSize"),(0,l.K2)(ue,"insertBlockPositioned"),(0,l.K2)(pe,"performOperations"),(0,l.K2)(ye,"calculateBlockSizes"),(0,l.K2)(be,"insertBlocks"),(0,l.K2)(xe,"insertEdges");var fe=(0,l.K2)(function(t,e){return e.db.getClasses()},"getClasses"),me={parser:y,db:X,renderer:{draw:(0,l.K2)(async function(t,e,r,a){const{securityLevel:s,block:i}=(0,l.zj)(),n=a.db;let o;"sandbox"===s&&(o=(0,g.Ltv)("#i"+e));const c="sandbox"===s?(0,g.Ltv)(o.nodes()[0].contentDocument.body):(0,g.Ltv)("body"),d="sandbox"===s?c.select(`[id="${e}"]`):(0,g.Ltv)(`[id="${e}"]`);G(d,["point","circle","cross"],a.type,e);const h=n.getBlocks(),u=n.getBlocksFlat(),p=n.getEdges(),y=d.insert("g").attr("class","block");await ye(y,h,n);const b=at(n);if(await be(y,h,n),await xe(y,p,u,n,e),b){const t=b,e=Math.max(1,Math.round(t.width/t.height*.125)),r=t.height+e+10,a=t.width+10,{useMaxWidth:s}=i;(0,l.a$)(d,r,a,!!s),l.Rm.debug("Here Bounds",b,t),d.attr("viewBox",`${t.x-5} ${t.y-5} ${t.width+10} ${t.height+10}`)}},"draw"),getClasses:fe},styles:U}},7981:(t,e,r)=>{r.d(e,{T:()=>f});var a=r(9142),s=r(9610),i=r(7422),n=r(4092),o=r(6401),l=r(8058),c=r(9592),d=r(3588),h=r(4326),g=r(9902),u=r(3533);const p=(0,h.A)(function(t){return(0,g.A)((0,d.A)(t,1,u.A,!0))});var y=r(8207),b=r(9463),x="\0";class f{constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMultigraph=!!Object.prototype.hasOwnProperty.call(t,"multigraph")&&t.multigraph,this._isCompound=!!Object.prototype.hasOwnProperty.call(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=a.A(void 0),this._defaultEdgeLabelFn=a.A(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[x]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return s.A(t)||(t=a.A(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return i.A(this._nodes)}sources(){var t=this;return n.A(this.nodes(),function(e){return o.A(t._in[e])})}sinks(){var t=this;return n.A(this.nodes(),function(e){return o.A(t._out[e])})}setNodes(t,e){var r=arguments,a=this;return l.A(t,function(t){r.length>1?a.setNode(t,e):a.setNode(t)}),this}setNode(t,e){return Object.prototype.hasOwnProperty.call(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=x,this._children[t]={},this._children[x][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.prototype.hasOwnProperty.call(this._nodes,t)}removeNode(t){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){var e=t=>this.removeEdge(this._edgeObjs[t]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],l.A(this.children(t),t=>{this.setParent(t)}),delete this._children[t]),l.A(i.A(this._in[t]),e),delete this._in[t],delete this._preds[t],l.A(i.A(this._out[t]),e),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(c.A(e))e=x;else{for(var r=e+="";!c.A(r);r=this.parent(r))if(r===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==x)return e}}children(t){if(c.A(t)&&(t=x),this._isCompound){var e=this._children[t];if(e)return i.A(e)}else{if(t===x)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this._preds[t];if(e)return i.A(e)}successors(t){var e=this._sucs[t];if(e)return i.A(e)}neighbors(t){var e=this.predecessors(t);if(e)return p(e,this.successors(t))}isLeaf(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var r=this;l.A(this._nodes,function(r,a){t(a)&&e.setNode(a,r)}),l.A(this._edgeObjs,function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,r.edge(t))});var a={};function s(t){var i=r.parent(t);return void 0===i||e.hasNode(i)?(a[t]=i,i):i in a?a[i]:s(i)}return this._isCompound&&l.A(e.nodes(),function(t){e.setParent(t,s(t))}),e}setDefaultEdgeLabel(t){return s.A(t)||(t=a.A(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return y.A(this._edgeObjs)}setPath(t,e){var r=this,a=arguments;return b.A(t,function(t,s){return a.length>1?r.setEdge(t,s,e):r.setEdge(t,s),s}),this}setEdge(){var t,e,r,a,s=!1,i=arguments[0];"object"==typeof i&&null!==i&&"v"in i?(t=i.v,e=i.w,r=i.name,2===arguments.length&&(a=arguments[1],s=!0)):(t=i,e=arguments[1],r=arguments[3],arguments.length>2&&(a=arguments[2],s=!0)),t=""+t,e=""+e,c.A(r)||(r=""+r);var n=_(this._isDirected,t,e,r);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,n))return s&&(this._edgeLabels[n]=a),this;if(!c.A(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[n]=s?a:this._defaultEdgeLabelFn(t,e,r);var o=function(t,e,r,a){var s=""+e,i=""+r;if(!t&&s>i){var n=s;s=i,i=n}var o={v:s,w:i};a&&(o.name=a);return o}(this._isDirected,t,e,r);return t=o.v,e=o.w,Object.freeze(o),this._edgeObjs[n]=o,m(this._preds[e],t),m(this._sucs[t],e),this._in[e][n]=o,this._out[t][n]=o,this._edgeCount++,this}edge(t,e,r){var a=1===arguments.length?L(this._isDirected,arguments[0]):_(this._isDirected,t,e,r);return this._edgeLabels[a]}hasEdge(t,e,r){var a=1===arguments.length?L(this._isDirected,arguments[0]):_(this._isDirected,t,e,r);return Object.prototype.hasOwnProperty.call(this._edgeLabels,a)}removeEdge(t,e,r){var a=1===arguments.length?L(this._isDirected,arguments[0]):_(this._isDirected,t,e,r),s=this._edgeObjs[a];return s&&(t=s.v,e=s.w,delete this._edgeLabels[a],delete this._edgeObjs[a],w(this._preds[e],t),w(this._sucs[t],e),delete this._in[e][a],delete this._out[t][a],this._edgeCount--),this}inEdges(t,e){var r=this._in[t];if(r){var a=y.A(r);return e?n.A(a,function(t){return t.v===e}):a}}outEdges(t,e){var r=this._out[t];if(r){var a=y.A(r);return e?n.A(a,function(t){return t.w===e}):a}}nodeEdges(t,e){var r=this.inEdges(t,e);if(r)return r.concat(this.outEdges(t,e))}}function m(t,e){t[e]?t[e]++:t[e]=1}function w(t,e){--t[e]||delete t[e]}function _(t,e,r,a){var s=""+e,i=""+r;if(!t&&s>i){var n=s;s=i,i=n}return s+"\x01"+i+"\x01"+(c.A(a)?"\0":a)}function L(t,e){return _(t,e.v,e.w,e.name)}f.prototype._nodeCount=0,f.prototype._edgeCount=0}}]);
\ No newline at end of file
diff --git a/docs/assets/js/4a1f5962.2261d5c8.js b/docs/assets/js/4a1f5962.2261d5c8.js
deleted file mode 100644
index 5b515e2..0000000
--- a/docs/assets/js/4a1f5962.2261d5c8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[1033],{92:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Path\u6dfb\u52a0Java-3893ca03d7c19a8ee97c37ec9d598b0a.png"},1153:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728ArchivedOpenJDK\u4e0b\u8f7dJava-95332d8ddb2c4507429c31cedc7b2bb4.png"},1564:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA-0ef5114f7d73cbab66386a1140d32d2f.png"},2253:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5f39\u51fa\u6e38\u620f\u754c\u9762-888a77d645892845940cae0ddde064a8.png"},2295:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java\u8def\u5f84-f5170a22bb379516188ad3355f240a11.png"},2867:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u538b\u7f29\u5305\u5185\u5bb9-a8396029c99ef3fd9db9d592da93ceba.png"},2975:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},3135:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Github\u4e0a\u7684NeoGradle\u5e93-0fc403ccea3e56ddc490a3e3bdd12c5f.png"},3336:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee-c3908ac6ebe5fa7ab0639b55d5b51f47.png"},3663:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWUAAABPCAIAAAC8p0MIAAATnElEQVR4nO2df2wTZ5rHnzcOKR5TIJ6ZgI7YSRPHcZpUBPKDJECucD0dDVS3/WN1hc0d3dVddap0IHrt0dPen6u9/tKypdLq1D3dLlVaumpXi44N7UmnwiWNAw2B0BIS20kgNtDimXEWiMeQJrz3x9iT8Y9xJrZJ0vT5qFLJ63fe93lfz3zneZ739Qxp/Ys9kxM3KTEBgiBIWvIW2wAEQb4zoF4gCGIU1AsEQYySr/yPX7d+ce1AEGTpg/4FgiBGQb1AEMQoqBcIghgF9QJBEKOgXiAIYhTUCwRBjIJ6gSCIUVAvEAQxSv5iG4AguWQa8kZMzjBlgJDFtiUXUGohsmPGmw8PFtsUAIN6IZvW6H1U8CCST6cy7n6aFEzlmfU+ZWZuZ9wy8v1kJM8ZBgssC60AACAkDJaRPKfrwfBimwKQZTySpVgAQD6dKngQyaYFBNESJpbFNiH3LJ1BGY9HKDNzR/u3OGP5eubRnBixxnSPM4W1JbJpNSyfewSCLBMy9C/EGcvtmZW5MuL2zEpxZqkoKIIgemSS78ytWCgoDSZ4GQiCGIdhVq5jrfn56S7q6enpW1JIlu9l1sW89eJhiIUCSgayRKAVlb97mktf58Inn7/hIwBAOduRvWz/8Yvvi3ERNOVsR/bavvm0R6m2AKxj2Ru3bkXu309Tx/zIIxvWrbsq38isi/nphSoWBSvyC1evzqzLlEzcuTP17fS8JIPSimcP7aogBAB8nW+f8Ea/Fco1/6S9niOESn3HjrmD4Hz20C4HjHYe6RxajDU2vuVHz29hE4xMgFKudf/eJpZoSqRzHR3dYi4NVmbMAaGct7zMID7Pcz6P+iel5vZ2e6BjuCvu/CFaWfmzfdueAbjZd+FE4aYXHQQAqOT/6dGesQU85fLzTXpiwZjNLGsNXL8RuX8/Pz/zh/XOQy+0nkVlmf31V1/MuNdkDr/2q688YxDzMph5jshR6QSvT/l3kbOMWzJr79TZpoiFgqIdaYRDhRC26W8POs598Bu3+JBtXBIYn5mFIYWLcXCbesYrzgXxeX5VYbZ9cfF9kVDKHj7AnXXLsHvW9Vgie0DyTaan//KpwrVrP/joYzmS1XKkUb0oeHAveTXk1x+eHBm/ri1ZYTL97OUXLg76Pvzj/yZUfm7PU5uqK/7trXe/nZnRljtKiv/huWe0JbdnVq59cDfNvgwtlEpSyMqWV1RR7xAhlHIuh1VbgRDfiV/6lH8ZaTC3FHGFACBGL3tSVWlNU1n1KVR3g238q+3e74UvwLHpZmZRoCPDe09JkORftLa1NMXq/F9n4PABV+tRv63dduP4xS5CWhfPYD221NcXrl07HghkKRZgUC/09lmM+W98NTwaV3NFPgD86c7dhHIA2NW6BQAue8emvp3Wlueluozz6ZTh/WwTExNWjnVUVsKQF4CvcFhBHBmB8nLlth5zwkc7j3Re4Vt+0l7Phs4fOwV7lJhl5JO3TkYdk6pn/mmP4knGxwJqOQD4Ot/+g4dv3b93izV07tSYo62eHf30rZM+bR1KR5TYRy3ktuz754Y/3byzpngtAYCK3QdfbhtJEx8RInYdOw779zaxrMPJd4tiSvOUEnUIyi06pk26w9ESZ7bUd+yYWyBEM2O+yviIL/kjpXe1Ha2DkGyAEiomzP+b/z2hxmLKzLz1y1MGv/uHCnG4Pjyg+VvrX/gUEdn0DEsAYPNBDgBg37Y9kv+PE7D56W0fPh2tSSX/Tzv8CxmVJGAvLnY5K2Q50uV2Z9+aIb3IclNWZhjv1OMZrXA4lJCkyFnGQuicZ8JRnuaIsj3t1mjMUt64nfN2Cbw2fUAIu6W9HTo6EsoTcDTVc4RQAEo5rnC2nBDH7v0t4rGsvh5CRHECgAVIym7Mmtd7vqm8ni3keOoNAu9yWCmVRrwCpXrDmW0/OWNC2Ib9hwo7j3ReiRYUNu3fpUZ2jrb27SG1hdmPiOPpH/9dI8eq1XZXeTqvgI4B0Zbj55/9NJuJenik9y8Iibz/vvv9FJ/aLnzy+ete7vAB7uzR4S5CFtixzcvLa6zbPB4IfP3NLbPZ3NrSTAg509Nz/34OruJl8fsRj8/XVu4or6iiE5zDCqHzwyFwpKlvhZGOo/8lOJ89tKuCsKwVwNrYxBLVL1Bu1A4n3xVfTrnm1pjXTAgLIx+8+Z4IAIRA93vvdAOA6s5YCzmAoZPviKnu+dGbsPHTqFLHvB7fSKietZa5eHcQKhxWgNDYsKBfX0huU42AlOSxo7ISrniiA5w4+/ZvvOpHsy2oHynDYWHst7/oCCq+GxRyvP58elPMP8eJJ957R9TOzJKD2WCFQFJpWXPtzxti+4YObntRyXeCfGNiYa2Lp6CgoNrlqigr+/3Jk60tLStXrvzy8uDNr7/OSePLQi/A6xndVeFwVG6dKLSC9IUvCBXpqofGhgUgxOcZ3VWh0RVCHHteOrhHU1HJPsCoTwkciNirevXKnVzdhKp17AGA0myHpPosE6KgZx4h4vBIqEm5FMVCjhDfWbdAiF59LbGhfaGMSJ2NQo4Hj2LAiMcDQFJMlPqRKIXAwUojPoEQEFR/SDVPxwCd+V9qJMQjm+PjEQAY6x14rjfOv6DU3N6+8JbGce/evS8Hr2ysqf7rtjYLw4hS6PzAQK4aXx56AVc8o3scjootDZRK57wCpNcLHdQAfrbEOQHAgppM5Zpbre4uT9KBzrY9DqI4EbEIPyvUYCF6ZVamNg8Agt4xsdHKsoWPs+XqZaw3HIDZqCkoxg+NVlSWA0TlqRAACImmhCjX3BT/kdFRJBvAZfK9LA4T8k0qnjiqqAB7uJ35OJaGUPOdlLKHD9huHPcAgK1l0y/Ac8jNbLBGzgppW374XLh0yV68oXDt2unp6dOfdz94kLPfti4TvVBCkgpCog45n9HhbMPzLzUoBdG9G9FmZ++Tvs4UWQnlXs1t2ffKlmhJev9CL9+prKGquXdKpXMdnUOE6JknEAKCbyRUz5Y3NoVm/SDd4SQPOd4FoFJfj0YNK3YffGW3asyIJ0kodTFigP7MLIV8JxEDh47bjhzY+oPzF08UVq4fu6jmLLtOubtAcSUq4dOeDoFpBwi4LwZ2bz3cElg/KnYRAlk7mNkwMzPT5e596sk/P39x4PbtO3MfYJis9OLf/+UfU5bvaN68o3lzyo9OvPtaNj3qoTq3Ud94/of/4chEcmozoZxSSQqlODzY8z9nHdE64rm+icZ6Pf/iSu/5pvJ6I9tDtDdnPfNAE5JwLPjOehXvIk39NEOOrrPEznVKRzo7JpqUVYxYJsLgZWDEgASMz8yCQcTAoeNwZO+mFwmhtPJHvrgdnEq+U/uryK5TbmhrafL1LIWfSgqiePzj3+e8WaK8n51bv2HOqqNTs8HpE5Vlr7/64oXLHilevUwkb2dL3TdC6Ctv4nrqE87y9bz1M3f/DI3zjtg1qzfXVKr7tRTKC6RMRoPkAu0K9KLsiM2GflNd9o20trXM7tHs8I9FExPR1VMFZfVEqalUG+XtRxrll6JLKuzs+kguqJvpn7POY7YNRveDBxZkP3gCH506fWloRFtSsCJ/Z0vd0Mi1I//5u4TKr7ywbz1vPfrbjxL2X2yscmyuqczGDATJLV2n3F3qH1EXL7p6qluTECIGXjqlHiS98Y60wCuptyRpw7oiA783y/xmvFzyFwjyvUeW712Vbz7ULlAvkEQWdwc9spTB54Mjy4xFXZl4WCyVQaFeIMsK88zdxTYh9yydQaFeIMuK0siX5pm7Odhgu0Sg1DxztzTy5WLbESWr/MUP23bs3Bq3fGUieQBQ5Sg99Pd/k1C5ylEKAAee/2Hyemo2NiCIlhWmvDL5wmJbkWNM+SsW24QoWemF3jroet66nk/9OIOdLTlYHkcQPVYUPAIAMzPTy8TFIMRkylcGtRTISi/+9Y3/SN5/ceLd1073Xnjz3Q8SKr/ywr4dzZt/8MKryfsv9PaJIkgGrCh4ZAUslQtsmYH5CwRBjIJ6gSCIUVAvEAQxynd7fyc12xrrilcRAgA0HOjr94djWxJ5V3MNn1iepr6Cxb6xwQ7j/QNXI/HvkqDmsrraUgsBACp4zgzPsQOfUrZmOxvs9qT8sWxK2zLuyyDLc644586q2ad4T45f7PNn/khbarY11lnFpBE9VCz2jY0lFkrFQZ0Z0INyzh0umO9RWWJIL6ZJwcI/wnPOTik1l1WZr3Urj6g1l9XVNlTJytnJu5qrmetfdPkngVHL09SPNciW2hkAObmvoionDLlPRwilbM12Z4N9IM15qZ4BKR/3oNoWJoR3NTfUQcJlMK++DLJc5wp0dOS7AjXbHrfDtfM9VyMECLHYNzZwoaU8HEN6MZVnTvm07jL7hgfxq1YrTCYAWLv60Sdcic/bXbv6UQCocZYlvE+gzJ7ip/TTpGAqz5w/k04vCIlcveBVfz445pdKXCxPxSBwRZw83u8PE0IgMjZ0natjeSoKOvVVeS6qcvKyHGZS9CUMXxKij5aQgiKU6lvFu5qrwfvZeaaxLsX7ECg1r2JA8EdPiOD49dI6MwOgfUGT8b6Ssdg3lsoDg0mPAl+uc7WKMYMs5erqIpFA3+eBBX16hcVsgcg1eSk8McMQRuORqbyVa0z3Et6EmPDeEJVN1RWbqlM/ee1nL78wZ19rTPem8ub9ysVVjBnkkAwAPMtDZFD9DmRZhuIiHgRRpz4AAFCzrZSTBvsjpXVpXxFitpVystiv+w0Lw71nAMCc6koCICQSFOUGu90i+MOEFJUUW0Svnj85Z1/JTI575bqWanAnS4aW5TdXc6J4SYzfCy5nESGK/w9VLUqwExzqGRSJGo+MyUxZXS3jH5DttaUWQmlYDbsUp6mIzB6ltK84SgCgtBwERu2OB2mw2xNk7Gp8pxyoHlLTylHBMwjOGp4AWBpbbXpxXFzvmi8p2SpFi9VGFM/lzIXkhxbPj3nkL5TXFCqS4Rnz//jln2fZt5aJO9Hn7qwx3eNMYRnmt+lTcY/Dfm/0ViNHUjjK+vUpNZdVFcvD7iDYU94P1e+DUnGweyCbiDHsv9QHGxtbbaAT3s/Zl3qe6VK1ldGP5JfTXDEMQ/jKHTzoVUiAd7GD3e7LwJTV1da0bg0O9ZweJhb7xgZXJd/tCSZWdo73u09HCO9qrq6yB/uVkM3J+AdO+yPUbGusq32sf+CqUoGTLncNCIRQs62Mh6Aw290gIUBIEQ9Xut1hQijn3OGq5Ls9gv/SZ7I2B9H7hZwuHqHUPNs7NZfV1QJIieUxq8ZEqTrmEirfoDA8kL0bM798pyoZU99O30r5aLrsUMRivkcpSS/9XJcsy8CkrV9UVVsie8+IBHTeqUaINPh576CSEtveUurPPKegCP/pbgkALPaNT25mEs6POfsK+y+d9qduPHYX1fUvltlcCcO9p4cBYiL1pMubXjKEYY9ACIFIUJRLIHRNACAwKYTCdusqBhL0Iuz3Kj6FGgpN8rYSRhocl4EQkEVRLuZ4ZkzgSjl5vD+adySRgJouDfsDqlwK/kD0+QDhSBisqxgQ5jsrmt5jQWJi+axV44Fxe23UVeRZXr7eJ+Qg6pn3+ojWy8gtmYkF72qu5uRoxkiF0Qa6DMPIcli3PuWc1cz1vn7RyOMeSCRwxW9t4DjLuH8SONUJNJjfjnry3dG+JsevC3ZnKe8fTPWOVG1fBkP0VSXONGKxnOeKSJeHpR3xSZY5kOX0syrLiZHUKsZMiKWmVbMiI6bLQagtaNeMAIDS8JwvxdWGGMqMyfFRYXqrotEcx4EoFXFsWBzISZYnk/XUhyEZmYsFc72vO/5yStBvhmEgEpQBSIr6lJrL7CyxEMXpVVhVv7XEgHOr3kjVv+e22GJOG0hkS9h/aVDnJvK9mKu5YqssmZQjNJwUL5gN+Au8rYSRLnd5lIClMW3eRyF5xqgciRf3tFYBTAqhcB3LUyiaZxYsDRnu1+JM4TWme9l3r5BhGGK2lXLy+FDiNJFI4JrIlJRwEAu2wR9Qvqfk+oRErl7oPd3tVv777Hxgkoavne85MyxRs61hW3M1RyllqzfbLJSCGsyL4rzUWm0KBEkAtrQk6vKvKinmQQoKkMO+vk9zZea5aFBEKVvjYnMyV+kQJIEpfjxmEu9y8pSCLIoyU1Jlj47abHuMS/dTt6KSYj0dnIwpgm7vsQlRxpvOKgCQRVFmi6pYXryeqx0lxv0LIpvWaP9mTLD2wd3s92UoS6cyrJm7agqY0vqt2qybkhwODg2sqqvdsT22ZWg2fk5dP30fhEiX/ezO1q3qIX2ZvjCdEOlyt7dme+2OktSeeQ77SmL5zVVEZjbu2B69+rLcrGXUpP7rjXVRk4JDPYOEEIhcvdA76WqO5mXDgb7kR3kLgXF7bU3rVgAIjgfCoONfCJLgcta0bk2Zu9X2Tqk4OCzxLl2rILYQvrOKCw55cuJcgMH3CSQohRa9V7cbRBELvU+ZmdsZt4wgSM4x5F88vOs2n06l35SFIMjSAX9vhiCIUVAvEAQxCuoFgiBGQb1AEMQoqBcIghgF9QJBEKOgXiAIYhTUCwRBjIJ6gSCIUVAvEAQxCuoFgiBGQb1AEMQoqBcIghgF9QJBEKOgXiAIYhTUCwRBjIJ6gSCIUVAvEAQxCuoFgiBGQb1AEMQoqBcIghgF9QJBEKNE3ycg3Ppmce1AEGTpg/4FgiBG+X+udHCI8rDvlwAAAABJRU5ErkJggg=="},4680:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fd0\u884c\u680f\u5728\u8fd9\u91cc-15308dbaec13e7025f3f0c62fb1c537c.png"},4913:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fdb\u5165\u540e\u7684\u6837\u5b50-2e191e13292dd320d90b736b1c338708.png"},6403:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava-c9b29c36cc892e1d75399f539dfb4c62.png"},6527:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>h,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>t});const r=JSON.parse('{"id":"\u7b2c\u4e8c\u7ae0/nf1.21ep2","title":"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa","description":"\u63d0\u793a","source":"@site/tutorial/2-\u7b2c\u4e8c\u7ae0/index.md","sourceDirName":"2-\u7b2c\u4e8c\u7ae0","slug":"/nf1.21/ep2","permalink":"/docs/tutorial/nf1.21/ep2","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep2","slug":"/nf1.21/ep2"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08","permalink":"/docs/tutorial/nf1.21/ep1"},"next":{"title":"\u7b2c\u4e09\u7ae0 \u57fa\u7840\u6982\u5ff5","permalink":"/docs/tutorial/nf1.21/ep3"}}');var i=s(4848),l=s(8453);const d={id:"nf1.21ep2",slug:"/nf1.21/ep2"},c="\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa",h={},t=[{value:"\u51c6\u5907\u5de5\u4f5c",id:"\u51c6\u5907\u5de5\u4f5c",level:2},{value:"\u5b89\u88c5IntelliJ IDEA",id:"\u5b89\u88c5intellij-idea",level:3},{value:"\u5b89\u88c5JDK",id:"\u5b89\u88c5jdk",level:3},{value:"Linux",id:"linux",level:4},{value:"MacOS",id:"macos",level:4},{value:"Windows",id:"windows",level:4},{value:"OpenJDK",id:"openjdk",level:5},{value:"OracleJDK",id:"oraclejdk",level:5},{value:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93",id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",level:3},{value:"\u989d\u5916\u7684\u8bbe\u7f6e",id:"\u989d\u5916\u7684\u8bbe\u7f6e",level:2},{value:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"\u5f00\u59cb\u6784\u5efa",id:"\u5f00\u59cb\u6784\u5efa",level:2},{value:"\u5bfc\u5165\u9879\u76ee",id:"\u5bfc\u5165\u9879\u76ee",level:3},{value:"\u6784\u5efa\u8be6\u89e3",id:"\u6784\u5efa\u8be6\u89e3",level:3},{value:"Gradle\u662f\u4ec0\u4e48",id:"gradle\u662f\u4ec0\u4e48",level:4},{value:"\u8bbe\u7f6eJava\u7248\u672c",id:"\u8bbe\u7f6ejava\u7248\u672c",level:4},{value:"\u6dfb\u52a0\u63d2\u4ef6",id:"\u6dfb\u52a0\u63d2\u4ef6",level:4},{value:"\u8bbe\u7f6e\u4ee3\u7406",id:"\u8bbe\u7f6e\u4ee3\u7406",level:4},{value:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",level:4},{value:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",level:4},{value:"\u9047\u5230\u56f0\u96be",id:"\u9047\u5230\u56f0\u96be",level:4},{value:"\u6d4b\u8bd5\u7a0b\u5e8f",id:"\u6d4b\u8bd5\u7a0b\u5e8f",level:3},{value:"\u7ae0\u672b\u5c0f\u8bb0",id:"\u7ae0\u672b\u5c0f\u8bb0",level:2}];function o(n){const e={a:"a",blockquote:"blockquote",code:"code",del:"del",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"\u7b2c\u4e8c\u7ae0-\u73af\u5883\u6784\u5efa",children:"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u4e00\u73af\u8282\u4e2d\u7684\u90e8\u5206\u4fe1\u606f\u4f60\u5e94\u8be5\u5728\u4e4b\u524d\u7684\u7f16\u7a0b\u5b66\u4e60\u4e2d\u6709\u6240\u4e86\u89e3\u3002\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u5b89\u88c5IDEA\u548cJDK\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E9%A2%9D%E5%A4%96%E7%9A%84%E8%AE%BE%E7%BD%AE",children:"\u73af\u5883\u8bbe\u7f6e"})]}),"\uff1b\u5982\u679c\u4f60\u5df2\u7ecf\u8bbe\u7f6e\u8fc7Java\u73af\u5883\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA",children:"\u6784\u5efa"})]}),"\uff1b\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u6784\u5efa\uff0c\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7\u672c\u7ae0\u8282"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),(0,i.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,i.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u51c6\u5907\u5de5\u4f5c",children:"\u51c6\u5907\u5de5\u4f5c"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5de5\u6b32\u5584\u5176\u4e8b\uff0c\u5fc5\u5148\u5229\u5176\u5668\u3002"}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e0b\u9762\u7684\u6b65\u9aa4\u6d89\u53ca\u5f88\u591a\u7f51\u7edc\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u540c\u65f6\u8fdb\u884c"}),"\u591a\u4e2a\u6b65\u9aa4\u7684\u4e0b\u8f7d\u548c\u5b89\u88c5\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5intellij-idea",children:"\u5b89\u88c5IntelliJ IDEA"}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u662f\u4e00\u6b3e\u5f3a\u5927\u7684",(0,i.jsx)(e.strong,{children:"\u4ee3\u7801\u7f16\u8f91\u5668"}),"\uff0c\u5bf9Java\u548cKotlin\u7684\u652f\u6301\u5c24\u4e3a\u7a81\u51fa\u3002\u4f7f\u7528IDEA\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u51cf\u5c11\u5f88\u591a\u4e0d\u5fc5\u8981\u7684\u9879\u76ee\u8bbe\u7f6e\u5de5\u4f5c"}),"\uff0c\u4e0d\u8fc7\u5982\u679c\u4f60\u975e\u8981\u7528Eclipse\u6216\u8005VS Code\uff0c\u4e5f\u4e0d\u662f\u4e0d\u884c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u5206\u4e3a",(0,i.jsx)(e.strong,{children:"\u4e13\u4e1a\u7248"}),"\u548c",(0,i.jsx)(e.strong,{children:"\u793e\u533a\u7248"}),"\uff0c\u4e24\u8005\u529f\u80fd\u533a\u522b\u4e0d\u5927\uff0c\u9009\u62e9\u4efb\u4f55\u4e00\u79cd",(0,i.jsx)(e.strong,{children:"\u90fd\u4e0d\u4f1a"}),"\u4e0e\u672c\u6559\u7a0b\u63d0\u4f9b\u7684\u4efb\u610f\u4e00\u4e2a\u6b65\u9aa4\u51b2\u7a81\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u4e13\u4e1a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u6536\u8d39"}),"\u7684\uff0c\u793e\u533a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u4e0d\u6536\u8d39"}),"\u7684\u3002\u4e13\u4e1a\u7248\u53ea\u6709\u4e00\u4e9b\u4f60\u4e00\u822c\u7528\u4e0d\u5230\u7684\u9ad8\u7ea7\u529f\u80fd\uff0c\u6240\u4ee5\u6ca1\u6709IDEA\u7684\u4e0b\u793e\u533a\u7248\u5c31\u884c\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dIDEA\uff0c\u6ce8\u610f\u793e\u533a\u7248(Community Edition)",(0,i.jsx)(e.strong,{children:"\u5728\u9875\u9762\u4e0b\u90e8"}),"\uff0c\u4f60\u770b\u5230\u7684\u7b2c\u4e00\u4e2a\u662f\u4e13\u4e1a\u7248(Ultimate)\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/?section=windows",children:"Download IntelliJ IDEA \u2013 The Leading Java and Kotlin IDE"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA",src:s(1564).A+"",width:"1912",height:"697"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u7ecf\u8fc7\u6211\u6d4b\u8bd5\uff0c\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Windows7"}),"\u7cfb\u7edf\u7684\u5927\u90e8\u5206\u7535\u8111",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u542f\u52a8"}),"\u5b89\u88c5\u540e\u7684",(0,i.jsx)(e.strong,{children:"2024\u7248"}),"IDEA\u3002\u5982\u679c\u4f60\u4f7f\u7528Windows7\uff0c\u8bf7\u5728\u8fd9\u91cc\u5bfb\u627e\u5e76\u4e0b\u8f7d",(0,i.jsx)(e.strong,{children:"2023.1"}),"\u7684IDEA Community\u7248\uff1a ",(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/other.html",children:"Other Versions - IntelliJ IDEA"})]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5b89\u88c5\u7684\u65f6\u5019\uff0c",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u4fee\u6539\u5b89\u88c5\u8def\u5f84\u5230\u522b\u7684\u5b58\u50a8\u76d8\u91cc\u3002",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u5b89\u88c5\u5230\u4f60\u65b0\u5efa\u7684\u4e00\u4e2a\u547d\u540d\u4e3a\u201cIDEA\u201d\u7684\u6587\u4ef6\u5939\u91cc\uff0c\u8fd9\u6837",(0,i.jsx)(e.strong,{children:"\u66f4\u65b9\u4fbf\u7ba1\u7406"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u521d\u6b21\u542f\u52a8IDEA\uff0c\u4f1a\u5f39\u51fa\u7528\u6237\u534f\u8bae\u8bb8\u53ef\u548c\u534f\u52a9\u8f6f\u4ef6\u6539\u8fdb\u7684\u5171\u4eab\u4fe1\u606f\u8bb8\u53ef\uff0c\u65b0\u7248\u672c\u4f1a\u5e2e\u52a9\u4f60\u8bbe\u7f6e\u8bed\u8a00\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u542f\u52a8IDEA\u540e\uff0c\u4e0d\u8981\u6025\u7740\u65b0\u5efa\u9879\u76ee(\u4e5f\u6839\u672c\u7528\u4e0d\u5230\u65b0\u5efa)\uff0c\u6211\u4eec\u8fd8",(0,i.jsx)(e.strong,{children:"\u7f3a\u5c11\u4e00\u4e2a\u5173\u952e\u6b65\u9aa4"}),"\u3002"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5jdk",children:"\u5b89\u88c5JDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u4eec\u5f00\u53d1\u7684\u6a21\u7ec4\u662f",(0,i.jsx)(e.strong,{children:"\u9488\u5bf9Minecraft1.21"}),"\u7684\uff0cNeoForge\u5bf9\u6b64\u63d0\u4f9b\u7684",(0,i.jsx)(e.strong,{children:"Gradle\u6784\u5efa"}),"\u8981\u6c42\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Java21"}),"\u3002\u6240\u4ee5\uff0c\u7b2c\u4e00\u6b65\uff0c\u5b89\u88c5\u4e00\u4e2a21\u7248\u672c\u7684JDK\u5427\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["JDK\u5206\u4e3a\u4e24\u79cd\uff0cOpenJDK\u548cOracleJDK\uff0c\u6709\u5174\u8da3\u7684\u53ef\u4ee5\u5728",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/qq_33326733/article/details/138875513",children:"\u8fd9\u7bc7\u6587\u7ae0"}),"\u8fdb\u884c\u4e86\u89e3\uff0c\u5728\u6b64\u6211\u4eec\u63a8\u8350\u4f7f\u7528OpenJDK"]}),"\n",(0,i.jsx)(e.h4,{id:"linux",children:"Linux"}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6587\u4f5c\u8005\u4e3b\u8981\u4f7f\u7528Windows10\u7cfb\u7edf\uff0c\u4e0d\u4f1a\u5bf9Linux\u7cfb\u7edf\u8fdb\u884c\u8fc7\u591a\u6307\u5bfc\u3002\u4ee5\u4e0b\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4ee5\u53ca\u540e\u9762\u7684\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u8bf7\u81ea\u884c\u9605\u8bfb",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/u013250861/article/details/131141098",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsx)(e.h4,{id:"macos",children:"MacOS"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u53c2\u8003",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/Lwehne/article/details/135867512",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u54c7\u662f\u82f9\u679c\uff0c\u7a00\u5ba2\u6b38\uff01\u6211\u865a\u62df\u673a\u8dd1XCode\u7684iOS Simulator\u592a\u5361\u4e86\uff0c\u628a\u4f60\u7684\u501f\u6211\u7528\u51e0\u5929(\u6ed1\u7a3d)"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"windows",children:"Windows"}),"\n",(0,i.jsx)(e.h5,{id:"openjdk",children:"OpenJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),".0.2\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dzip\u5305\u5373\u53ef\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://jdk.java.net/archive/",children:"Archived OpenJDK GA Releases"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622204204167",src:s(1153).A+"",width:"1210",height:"948"})}),"\n",(0,i.jsx)(e.h5,{id:"oraclejdk",children:"OracleJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),"\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dexe\u5b89\u88c5\u5305\u6216msi\u5b89\u88c5\u5305\u90fd\u53ef\u4ee5\uff0c\u4f46\u662f\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.oracle.com/java/technologies/downloads/#java21",children:"Java Downloads (JDK21 for Windows) | Oracle"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava",src:s(6403).A+"",width:"1912",height:"792"})}),"\n",(0,i.jsx)(e.p,{children:"\u4e0b\u8f7d\u5b8c\u6210\u540e\uff0c\u53cc\u51fb\u5b89\u88c5\u5305\uff0c\u6309\u7167\u5b89\u88c5\u5411\u5bfc\u63d0\u793a\u5b89\u88c5(\u4e0d\u5efa\u8bae\u8c03\u6574\u4efb\u4f55\u53ef\u8c03\u53c2\u6570\uff0c\u76f4\u63a5Next\u5373\u53ef)"}),"\n",(0,i.jsx)(e.h3,{id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",children:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93"}),"\n",(0,i.jsx)(e.p,{children:"\u4e3a\u4e86\u5b8c\u6210\u9879\u76ee\u7684\u6784\u5efa\u5e76\u5f15\u5165Minecraft\u73af\u5883\uff0c\u6211\u4eec\u9700\u8981\u4e0b\u8f7dNeoForge\u7684\u6784\u5efa\u9879\u76ee\u5e93\u5e76\u89e3\u538b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u76ee\u524d\u6709\u4e24\u79cd\u6784\u5efa\u5e93\u4f9b\u5f00\u53d1\u8005\u9009\u62e9\uff1a",(0,i.jsx)(e.strong,{children:"ModDevGradle"}),"\u548c",(0,i.jsx)(e.strong,{children:"NeoGradle"}),"\uff0c\u4e24\u8005",(0,i.jsx)(e.strong,{children:"\u533a\u522b\u4e0d\u5927"}),"\uff0c\u5b83\u4eec",(0,i.jsx)(e.strong,{children:"\u90fd\u662fMod Developer Kit(MDK)"}),"\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u672c\u6559\u7a0b\u4f7f\u7528ModDevGradle"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u5bf9\u4e8e\u5982\u4f55\u51c6\u5907\u6784\u5efa\uff0cNeoForge\u7684\u6587\u6863\u662f\u5982\u6b64\u89e3\u91ca\u7684\uff1a"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["Open the Mod Developer Kit (MDK) (either ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-ModDevGradle",children:"ModDevGradle"})," or ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-NeoGradle",children:"NeoGradle"}),') GitHub repository, click "Use this template" and clone the newly-created repository to your local machine.',"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"If you do not want to use GitHub, or if you want to get the template for an older commit, you can also download the ZIP of the repository (under Code -> Download ZIP) and extract it."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e5f\u5c31\u662f\u8bf4\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u76f4\u63a5"}),"\u5728GitHub\u4e0a",(0,i.jsx)(e.strong,{children:"\u521b\u5efa"}),"\u4e00\u4e2a\u4ee5MDK\u4e3a\u6a21\u677f\u7684\u9879\u76ee\uff0c\u518d\u901a\u8fc7IDEA",(0,i.jsx)(e.strong,{children:"\u514b\u9686"}),"\u5230\u672c\u5730\u3002\u8fd9\u4f1a\u5bfc\u81f4\u4f60\u7684\u9879\u76ee\u4e0a\u51fa\u73b0\u201d\u4f7f\u7528xxx\u4e3a\u6a21\u677f\u201c\u7684\u6807\u8bc6\u3002\u5f53\u7136\u4f60",(0,i.jsx)(e.strong,{children:"\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u4f7f\u7528"}),"GitHub\u7684\u6a21\u677f\u9879\u76ee\uff0c\u76f4\u63a5\u70b9\u51fbCode\u6309\u94ae\u7136\u540e",(0,i.jsx)(e.strong,{children:"\u4e0b\u8f7dzip\u5230\u672c\u5730"}),"(\u6211\u7ecf\u5e38\u8fd9\u4e48\u5e72)\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u7a0d\u7b49\u4e00\u4e0b\uff01\u4f60\u662f\u5728\u5f00\u53d11.21.x\u5417\uff1f\u5982\u679c\u662f\u8fd9\u6837\uff0c\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u4f5c\u4e3a\u53c2\u8003"}),"\uff01\u8fd9\u91cc\u7ed9\u51fa\u7684\u94fe\u63a5",(0,i.jsx)(e.strong,{children:"\u5168\u90fd\u6307\u54111.21\u800c\u4e0d\u662f1.21.x"}),"\uff01\u5982\u679c\u4f60\u8981\u4e0b\u8f7d1.21.x\u7684MDK\u5305\uff0c\u8bf7\u5728",(0,i.jsx)(e.a,{href:"https://github.com/orgs/NeoForgeMDKs/repositories?type=all",children:"\u8fd9\u91cc"}),"\u9009\u62e9\u5bf9\u5e94\u7248\u672c\u548c\u5bf9\u5e94\u6784\u5efa\u5e93\u4e0b\u8f7d\uff01\u4e0d\u540c\u7248\u672c\u95f4\u4f1a",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff01"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Github\u4e0a\u7684NeoGradle\u5e93",src:s(3135).A+"",width:"1564",height:"718"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"GitHub\u5728\u56fd\u5185\u7684\u8bbf\u95ee\u5e76\u4e0d\u7a33\u5b9a\u3002\u5982\u679c\u4f60\u9047\u5230\u7f51\u7edc\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u4e0d\u662f\u5e94\u8be5\u53bb\u627e\u627e\u4ec0\u4e48\u89e3\u51b3\u65b9\u6848\u5462\uff1f(\u54b3\u54b3)"}),"\n",(0,i.jsx)(e.p,{children:"ps: \u8bf7\u9075\u5b88\u56fd\u5bb6\u6cd5\u5f8b\u89c4\u5b9a\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u989d\u5916\u7684\u8bbe\u7f6e",children:"\u989d\u5916\u7684\u8bbe\u7f6e"}),"\n",(0,i.jsx)(e.h3,{id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u8fd0\u884c\u5f00\u53d1\u73af\u5883\u65f6\uff0c\u6211\u4eec\u7ecf\u5e38\u9047\u5230\u4e00\u4e9b\u5173\u4e8e\u7f16\u8bd1\u5668",(0,i.jsx)(e.strong,{children:"\u7248\u672c"}),"\u7684\u5c0f\u95ee\u9898\u3002\u8b6c\u5982\u4f60\u4e3a\u4e86\u548c\u670b\u53cb\u73a9\u8d5b\u6587\u79d1\u6280\u6574\u5408\u5305\u800c\u540c\u65f6\u5b89\u88c5\u4e86JDK8\u3001\u4e3a\u4e86\u5de5\u4f5c\u4f7f\u7528JDK11\uff0c\u4ea6\u6216\u662f\u5728\u4e4b\u524d\u7684\u5b66\u4e60\u4e2d\u4f7f\u7528\u4e86JDK23\u7b49\uff0cIDEA\u548cPCL2\u81ea\u7136\u4f1a",(0,i.jsx)(e.strong,{children:"\u5e2e\u4f60\u9009\u62e9\u5408\u9002\u7684Java\u7248\u672c"}),"\u3002\u4f46\u662f\uff0c\u6211\u4eec\u7684Gradle\u548ccmd\u5c31",(0,i.jsx)(e.strong,{children:"\u6ca1\u8fd9\u4e48\u806a\u660e"}),"\u3002\u56e0\u6b64\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf"}),"\u6210\u4e3a\u4e86\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5fc5\u4e0d\u53ef\u5c11"}),"\u7684\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u6309\u4e0bWin+R"}),"\u6253\u5f00\u8fd0\u884c\uff0c\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u540e",(0,i.jsxs)(e.strong,{children:["\u6309\u4f4fCtrl+Shift(\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u6253\u5f00)",(0,i.jsx)(e.strong,{children:"\u5e76\u56de\u8f66\uff0c\u5141\u8bb8\u7ba1\u7406\u5458\u6743\u9650\u7684\u63d0\u793a\u540e\uff0c\u6253\u5f00"}),"\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u7a97\u53e3"]}),"\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-bash",children:"rundll32 sysdm.cpl,EditEnvironmentVariables\n"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u5176\u5b9e",(0,i.jsx)(e.strong,{children:"\u7b49\u6548\u4e8e"}),"\uff1a\u53f3\u952e\u6b64\u7535\u8111->\u70b9\u51fb\u5c5e\u6027->\u70b9\u51fb\u4fa7\u8fb9\u201c\u9ad8\u7ea7\u7cfb\u7edf\u8bbe\u7f6e\u201d->(\u6743\u9650\u8ba4\u8bc1)->\u70b9\u51fb\u201c\u73af\u5883\u53d8\u91cf\u201d"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u4f1a\u770b\u5230\u4e24\u4e2a\u680f\u76ee\uff0c\u8bf7\u5728",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf\u680f\u76ee"}),"\u91cc\u8fdb\u884c\u64cd\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u201c\u73af\u5883\u53d8\u91cf\u201d\u7684\u65b0\u5efa\u7b49\u6309\u94ae",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u70b9\u51fb"}),"\uff0c\u8bf4\u660e\u4f60",(0,i.jsx)(e.strong,{children:"\u672a\u8d4b\u4e88\u7ba1\u7406\u5458\u6388\u6743"}),"\u6216",(0,i.jsx)(e.strong,{children:"\u6743\u9650\u4e0d\u591f"}),"\u3002\u8fd9\u79cd\u60c5\u51b5\u4e0b",(0,i.jsx)(e.strong,{children:"\u8bf7\u6309\u7167\u201c\u7b49\u6548\u4e8e\u201d\u4e2d\u7684\u6b65\u9aa4\u64cd\u4f5c"}),"\uff0c\u6216\u8054\u7cfb\u8bbe\u5907\u7ba1\u7406\u5458\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u65b0\u5efa\u201d\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u6846\u4e2d\u7684\u201d\u53d8\u91cf\u540d\u201c\u5904\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA21_HOME"}),"\uff0c\u5728\u53d8\u91cf\u503c\u8f93\u5165\u4f60\u5b89\u88c5JDK\u7684\u6587\u4ef6\u5939\u4f4d\u7f6e\uff0c\u5982\u679c\u4f60\u6ca1\u6539\u8fc7\uff0c\u4e00\u822c\u53ef\u4ee5\u5728",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java"}),"\u7684\u5730\u65b9\u627e\u5230\u5b83\u3002\u6211\u7684\u53d8\u91cf\u503c\u662f",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java\\jdk-21"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java21\u8def\u5f84",src:s(7840).A+"",width:"1062",height:"310"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u6309\u94ae\uff0c\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u518d\u6b21\u70b9\u51fb\u201c\u65b0\u5efa\u201d\uff0c\u53d8\u91cf\u540d\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA_HOME"}),"\uff0c\u53d8\u91cf\u503c\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA21_HOME%"}),"\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5c11\u4e86\u767e\u5206\u53f7"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java\u8def\u5f84",src:s(2295).A+"",width:"1065",height:"395"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u7ffb\u627e\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf"}),"\uff0c\u627e\u5230\u5e76\u53cc\u51fb\u201c",(0,i.jsx)(e.strong,{children:"Path"}),'"\u8fd9\u4e2a\u503c\uff0c\u6253\u5f00\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u70b9\u51fb\u73af\u5883\u53d8\u91cf\u7684\u201c\u65b0\u5efa\u201d\uff0c\u586b\u5165',(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u5e76\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u5e76\u9000\u51fa\u7f16\u8f91\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f7f\u7528Windows7\u7684\u7528\u6237",(0,i.jsx)(e.strong,{children:"\u5e76\u6ca1\u6709"}),"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u7684\u5355\u72ec\u7a97\u53e3\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53cc\u51fb\u4f1a\u5f39\u51fa\u666e\u901a\u7684\u7cfb\u7edf\u53d8\u91cf\u7f16\u8f91\u3002\u8bf7",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5220\u9664"}),"\u53d8\u91cf\u503c\u7684\u4efb\u4f55\u5185\u5bb9\uff01\u5728\u7ed3\u5c3e\u5904\u6dfb\u52a0\u4e00\u4e2a\u82f1\u6587\u5206\u9694\u7b26",(0,i.jsx)(e.code,{children:";"}),"\uff0c\u5e76\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u70b9\u51fb\u201c\u786e\u8ba4\u201d\u5b8c\u6210\u7f16\u8f91"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u4f60\u7684Path\u91cc\u9762",(0,i.jsx)(e.strong,{children:"\u5df2\u7ecf\u6709"}),"\u7c7b\u4f3c\u914d\u7f6e\u4e86\uff0c\u4f60\u5c31\u4e0d\u9700\u8981\u8fdb\u884c\u8fd9\u6b65\u4e86\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Path\u6dfb\u52a0Java",src:s(92).A+"",width:"1116",height:"643"})}),"\n",(0,i.jsx)(e.h3,{id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u5b89\u88c5IDEA\u7684\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u201c",(0,i.jsx)(e.strong,{children:"\u9009\u62e9\u8bed\u8a00"}),"\u201d\u7684\u6b65\u9aa4\uff0c\u5e76\u4e14\u4e2d\u6587\u6b63\u5e38\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7"}),"\u8fd9\u90e8\u5206"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["2024\u53ca\u4ee5\u524d\u7684IDEA\u7684\u9ed8\u8ba4\u8bed\u8a00\u662f",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\uff0c\u4e0d\u8fc7\u4e0d\u7528\u62c5\u5fc3\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u5b89\u88c5\u4e2d\u6587\u63d2\u4ef6"}),"\u7684\u65b9\u6cd5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd0\u884cIDEA\uff0c\u5728\u7a97\u53e3\u4e2d\u6309\u4e0b\u7ec4\u5408\u952e",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u6253\u5f00\u8bbe\u7f6e\uff0c\u5728\u5de6\u4fa7\u680f\u76ee\u9009\u62e9\u201c",(0,i.jsx)(e.strong,{children:"Plugins"}),"\u201d\uff0c\u5728Marketplace\u91cc",(0,i.jsx)(e.strong,{children:"\u641c\u7d22\u201cChinese\u201d"}),"\uff0c\u5b89\u88c5",(0,i.jsx)(e.strong,{children:"\u7b80\u4f53\u4e2d\u6587"}),"\u8bed\u8a00\u5305\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762",src:s(7136).A+"",title:"\u63d2\u4ef6\u7ba1\u7406\u957f\u8fd9\u4e2a\u6837\u5b50",width:"1247",height:"897"})}),"\n",(0,i.jsx)(e.p,{children:"\u5b89\u88c5\u5b8c\u6210\u540e\uff0cIDEA\u4f1a\u63d0\u793a\u4f60\u91cd\u65b0\u542f\u52a8IDEA\u7a0b\u5e8f\uff0c\u70b9\u51fbEnter\u81ea\u52a8\u91cd\u542f\u6216\u624b\u52a8\u5173\u95ed\u518d\u5f00\u542f\u90fd\u53ef\u4ee5\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"\u5f00\u59cb\u6784\u5efa",children:"\u5f00\u59cb\u6784\u5efa"}),"\n",(0,i.jsx)(e.h3,{id:"\u5bfc\u5165\u9879\u76ee",children:"\u5bfc\u5165\u9879\u76ee"}),"\n",(0,i.jsx)(e.p,{children:"\u7ecf\u8fc7\u4e86\u4e00\u6bb5\u65f6\u95f4\u7684\u51c6\u5907\uff0c\u6211\u4eec\u5df2\u7ecf\u5b8c\u6210\u4e86\u521d\u6b65\u7684\u51c6\u5907\uff0c\u53ef\u4ee5\u6b63\u5f0f\u5f00\u59cb\u6784\u5efa\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6b63\u5de7\uff0c\u6211\u624b\u5934\u6709\u4e9b\u8ba1\u5212\u7684\u6a21\u7ec4\uff0c\u5c31\u968f\u7740\u5199\u6a21\u7ec4\u4e00\u4e00\u4ecb\u7ecd\u600e\u4e48\u5199\u5427\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u524d\u6587\u9009\u62e9\u4e86",(0,i.jsx)(e.strong,{children:"\u5728GitHub\u4e0a\u8fdb\u884c\u514b\u9686"}),"\uff0c\u53ea\u9700\u8981\u5728\u672c\u5730",(0,i.jsx)(e.strong,{children:"VCS"}),"\u514b\u9686\u8fc7\u6765\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u9009\u62e9\u4e0b\u8f7dzip\u6587\u4ef6\uff0c\u9996\u5148\uff0c\u8981\u628a\u4e0b\u8f7d\u597d\u7684\u538b\u7f29\u5305\u6574\u4e2a",(0,i.jsx)(e.strong,{children:"\u89e3\u538b"}),"\u6210\u4e3a\u4e00\u4e2a\u5355\u72ec\u7684\u9879\u76ee\u6587\u4ef6\u5939(\u6211\u4f1a\u628a\u89e3\u538b\u5185\u5bb9\u585e\u5230Projects\u6587\u4ef6\u5939\u91cc)\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u538b\u7f29\u5305\u5185\u5bb9",src:s(2867).A+"",width:"1321",height:"738"})}),"\n",(0,i.jsxs)(e.p,{children:["\u7136\u540e\uff0c\u5c06\u8fd9\u4e2a\u6587\u4ef6\u5939\u540d\u79f0\u6539\u6210\u52a0\u8f7d\u5668\u540d+\u6e38\u620f\u7248\u672c+\u6211\u4eec\u81ea\u5df1\u5b9a\u4e49\u7684\u6a21\u7ec4\u540d(",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5e26\u7a7a\u683c\u3001\u7279\u6b8a\u7b26\u53f7\u7b49"}),")\uff0c\u5e76\u5728IDEA\u4e2d\u70b9\u51fb\u201c\u6253\u5f00\u9879\u76ee\u201d\uff0c\u9009\u62e9\u6211\u4eec\u521a\u521a\u89e3\u538b\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e00\u6b65\u5176\u5b9e\u5e76\u4e0d\u91cd\u8981\uff0c\u4f46\u662f\u4f60\u5e94\u8be5\u610f\u8bc6\u5230\u4e00\u4e2a\u597d\u7684\u547d\u540d\u4e60\u60ef\u53ef\u4ee5\u5728\u65e5\u540e\u7684\u5de5\u4f5c\u4e2d\u7701\u53bb\u4e00\u4e9b\u4e0d\u5fc5\u8981\u7684\u601d\u8003\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u6587\u4ef6\u5939",src:s(2975).A+"",width:"249",height:"30"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939",src:s(9978).A+"",width:"984",height:"805"})}),"\n",(0,i.jsx)(e.p,{children:"\u7136\u540e\uff0c\u6211\u4eec\u5c31\u6210\u529f\u8fdb\u5165\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fdb\u5165\u540e\u7684\u6837\u5b50",src:s(4913).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["(",(0,i.jsx)(e.del,{children:"\u4e0d\u8981\u5728\u610f\u90a3\u53ea\u684c\u5ba0\uff0c\u540e\u9762\u4f60\u8fd8\u4f1a\u7ecf\u5e38\u89c1\u5230\u5979\u7684"}),")"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u7684IDEA\u4ecd\u7136\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"\u65e7\u7248UI"}),"\uff0c\u56e0\u4e3a\u6211\u4e0d\u4e60\u60ef\u65b0UI\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684IDEA\u548c\u6211\u7684\u754c\u9762\u5206\u5e03",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u62c5\u5fc3"}),"\uff0c\u8fd9\u662f",(0,i.jsx)(e.strong,{children:"\u6b63\u5e38\u73b0\u8c61"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u6784\u5efa\u8be6\u89e3",children:"\u6784\u5efa\u8be6\u89e3"}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u8fdb\u5165\u9879\u76ee\u540e\uff0c\u4f60\u7684IDEA\u5c31\u5f00\u59cb\u81ea\u52a8\u8fd0\u884cGradle\u4e86\uff0c\u6784\u5efa\u4f1a\u5f88\u8017\u8d39\u65f6\u95f4\uff0c\u4ece15\u5206\u949f\u5230\u4e00\u4e24\u4e2a\u5c0f\u65f6\u4e0d\u7b49\uff0c\u5177\u4f53\u89c6\u7f51\u7edc\u73af\u5883\u800c\u8bba\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6784\u5efa\u5931\u8d25\uff1f\u6784\u5efa\u4e0d\u52a8\uff1f\u522b\u6025\uff0c\u6211\u4eec\u5148\u6765\u4e86\u89e3\u4e00\u4e0bGradle\u6784\u5efa\u7cfb\u7edf\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.h4,{id:"gradle\u662f\u4ec0\u4e48",children:"Gradle\u662f\u4ec0\u4e48"}),"\n",(0,i.jsx)(e.p,{children:"Gradle \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u6784\u5efa\u81ea\u52a8\u5316\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u8f6f\u4ef6\u9879\u76ee\u3002\u5b83\u7279\u522b\u9002\u7528\u4e8e\u591a\u8bed\u8a00\u9879\u76ee\uff0c\u5e76\u4e14\u53ef\u4ee5\u5904\u7406\u590d\u6742\u7684\u6784\u5efa\u9700\u6c42\u3002\u76f8\u6bd4\u4e8e\u5176\u4ed6\u6784\u5efa\u5de5\u5177\uff0c\u6bd4\u5982 Apache Maven \u548c Ant\uff0cGradle \u63d0\u4f9b\u4e86\u66f4\u7075\u6d3b\u548c\u5f3a\u5927\u7684\u6784\u5efa\u811a\u672c\uff0c\u56e0\u4e3a\u5b83\u4f7f\u7528\u4e86\u57fa\u4e8e Groovy \u6216 Kotlin \u7684\u9886\u57df\u7279\u5b9a\u8bed\u8a00\uff08DSL\uff09"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u8fd9\u4e2a\u4e1c\u897f\u8d1f\u8d23\u7ba1\u7406\u4f60\u7684\u9879\u76ee\u4e2d\u4e00\u5806\u5806\u7684\u5e93\u3001\u4e00\u645e\u645e\u7684\u8fd0\u884c\u811a\u672c\u548c\u5176\u4ed6\u76f8\u5173\u7ef4\u62a4\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u62d6\u62fd\u6253\u5f00",(0,i.jsx)(e.code,{children:"build.gradle"}),"\uff0c\u770b\u4e00\u773cGroovy\u7684\u8bed\u6cd5\uff0c\u4e0d\u8fc7\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u4fee\u6539\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6ejava\u7248\u672c",children:"\u8bbe\u7f6eJava\u7248\u672c"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684Gradle\u6784\u5efa\u51fa\u5e08\u672a\u6377\u8eab\u5148\u6b7b\uff0c\u63d0\u793a",(0,i.jsx)(e.strong,{children:"Java\u7248\u672c\u6709\u95ee\u9898"}),"\u3002\u8bf7\u6309\u7167\u4e0b\u9762\u7684\u65b9\u6cd5",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u7248\u672c"}),"\uff1a"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u6784\u5efa\u3001\u6267\u884c\u3001\u90e8\u7f72 -> \u6784\u5efa\u5de5\u5177 -> Gradle"}),"\u4e2d\uff0c\u9009\u62e9\u4f60\u7684\u6a21\u5757\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6eSDK"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee",src:s(3336).A+"",width:"1247",height:"897"})}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002\u63a5\u4e0b\u6765\uff0c\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Shift+Alt+S"}),"\uff0c\u547c\u51fa\u9879\u76ee\u5c5e\u6027\u9762\u677f\uff0c\u5728\u201c",(0,i.jsx)(e.strong,{children:"\u9879\u76ee"}),"\u201d\u4e2d\u9009\u62e9",(0,i.jsx)(e.strong,{children:"SDK\u7248\u672c"}),"\uff0c\u5e76\u70b9\u51fb\u786e\u5b9a\uff0c\u5b8c\u6210JDK\u7248\u672c\u7684\u8bbe\u7f6e\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u8bbe\u7f6e",src:s(7819).A+"",width:"1296",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd8\u662f\u6709\u95ee\u9898\uff1f\u56de\u4e0a\u9762",(0,i.jsx)(e.a,{href:"#Java%E7%8E%AF%E5%A2%83%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\u8c03\u7406\u4f60\u7684\u73af\u5883\u53bb\uff01"]}),"\n",(0,i.jsx)(e.h4,{id:"\u6dfb\u52a0\u63d2\u4ef6",children:"\u6dfb\u52a0\u63d2\u4ef6"}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u7406\u8bf4\uff0cIDEA\u4f1a\u5728\u4f60\u5bfc\u5165\u9879\u76ee\u540e\u63a8\u8350\u4e00\u4e2a\u53eb\u505a",(0,i.jsx)(e.code,{children:"Minecraft Development"}),"\u7684\u63d2\u4ef6\uff0c\u5982\u679c\u4f60\u6ca1\u6709\u5b89\u88c5\uff0c\u53ef\u80fd(\u4ea6\u6216\u662f\u5fc5\u7136)\u5f15\u53d1\u6784\u5efa\u9519\u8bef\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"Minecraft Development"}),"\u662f\u4e00\u4e2a\u4e13\u95e8\u63d0\u4f9b\u7ed9\u6211\u7684\u4e16\u754c\u793e\u533a\u5185\u5bb9\u5f00\u53d1\u8005\u7684\u63d2\u4ef6\uff0c\u63d0\u4f9b\u4e86\u5305\u62ec\u63d2\u4ef6\u5f00\u53d1\u3001\u6a21\u7ec4\u5f00\u53d1\u7b49\u4e00\u7cfb\u5217\u652f\u6301\uff0c\u8fd8\u5185\u7f6e\u4e86\u6587\u672c\u5f62\u6001NBT\u7f16\u8f91\u5668\u548c",(0,i.jsx)(e.strong,{children:"Mixin\u65ad\u70b9\u8c03\u8bd5\u652f\u6301"}),"\uff0c\u662f\u5f00\u53d1\u6a21\u7ec4\u5fc5\u4e0d\u53ef\u5c11\u7684\u5f3a\u529b\u63d2\u4ef6\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622170500495",src:s(3663).A+"",width:"357",height:"79"})}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00\u8bbe\u7f6e\u7684\u5feb\u6377\u952e\u4e0a\u6587",(0,i.jsx)(e.a,{href:"#idea%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:(0,i.jsx)(e.strong,{children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"})}),"\u6709\u4ecb\u7ecd\uff0c\u6b64\u5904\u4e0d\u518d\u8d58\u8ff0\u3001"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6e\u4ee3\u7406",children:"\u8bbe\u7f6e\u4ee3\u7406"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u5931\u8d25"}),"\uff0c\u5341\u6709\u516b\u4e5d\u662f",(0,i.jsx)(e.strong,{children:"\u7f51\u7edc\u95ee\u9898"}),'(\u6bd4\u5982\u201cCan\'t find id plugin "abc" \u201d)\u3002\u8fd9\u4e2a\u95ee\u9898\u5e76\u4e0d\u597d\u89e3\u51b3\uff0c\u5982\u679c\u4f60\u6709\u53ef\u7528\u7684\u4ee3\u7406\uff0c\u8bf7\u6309\u8fd9\u4e24\u6b65\u8bbe\u7f6e\u4ee3\u7406\uff1a']}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u5916\u89c2\u4e0e\u884c\u4e3a -> \u7cfb\u7edf\u8bbe\u7f6e -> HTTP\u4ee3\u7406"}),"\u4e2d\uff0c\u4fee\u6539\u4ee3\u7406\u9009\u9879\u4e3a\u201c",(0,i.jsx)(e.strong,{children:"\u624b\u52a8\u914d\u7f6e"}),"\u201d\uff0c\u5e76\u586b\u5165\u4f60\u4ee3\u7406\u7684IP (\u5982192.168.1.3) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u4e3b\u673a\u540d"}),"\u201d\uff0c\u7aef\u53e3 (\u598211451) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u7aef\u53e3\u53f7"}),"\u201d\uff0c\u5e76\u70b9\u51fb\u201c",(0,i.jsx)(e.strong,{children:"\u786e\u5b9a"}),"\u201d\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00",(0,i.jsx)(e.code,{children:"gradle.properties"}),"\uff0c\u5728\u7b2c\u4e00\u884c\u524d\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u6765\u8bbe\u5b9aGradle\u4ee3\u7406\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-properties",children:"[root@localhost=.gradle]\nsystemProp.http.proxyHost=\uff08\u4f60\u7684\u4ee3\u7406IP\uff09\nsystemProp.http.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\nsystemProp.https.proxyHost= \uff08\u4f60\u7684\u4ee3\u7406IP\uff09\nsystemProp.https.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\n# \u5982\u679c\u4f60\u7684\u4ee3\u7406http\u548chttps\u662f\u5408\u5e76\u7684\uff0c\u4e24\u4e2aip\u548c\u4e24\u4e2a\u7aef\u53e3\u662f\u4e00\u6837\u7684\u3002\n"})}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u6837\uff0c\u4f60\u5c31\u7b97\u5b8c\u6210\u4e86\u4ee3\u7406\u7684\u8bbe\u7f6e\u3002\u5982\u679c\u4ee3\u7406\u548c\u76ee\u6807\u4e00\u5207\u6b63\u5e38\uff0c\u5927\u6982\u5c31\u4e0d\u5b58\u5728\u7f51\u7edc\u95ee\u9898\u4e86\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u8fd8\u6709\u65e0\u6cd5\u8fde\u63a5\u7684\u7f51\u7edc\u95ee\u9898\uff0c\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b",(0,i.jsx)(e.a,{href:"../additions/NotThatAccess",children:"\u624b\u52a8\u8bbe\u7f6e\u5e93"}),"\uff0c\u8fd9\u6216\u8bb8\u4f1a\u6709\u5e2e\u52a9\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u5728\u4e0b\u8f7d\u6216\u4e0a\u4f20\u9879\u76ee\u7684\u65f6\u5019\u88abGit\u63d0\u793aConnection Reset\u7b49\u6742\u75c7\uff0c\u591a\u534a\u4e5f\u662f\u7f51\u7edc\u95ee\u9898\uff0c\u4f60\u53ef\u4ee5\u8c03\u51faGit Bash\u8bbe\u7f6e\u4e00\u4e0bhttp\u548chttps\u7684Proxy\u3002\u76f8\u5173\u5185\u5bb9\u5efa\u8bae\u81ea\u884c\u641c\u7d22"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",children:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519"}),"\n",(0,i.jsx)(e.p,{children:"\u7b2c\u4e00\u6b21\u6784\u5efa\u8fdb\u884c\u5230\u540e\u534a\u6bb5\u65f6\uff0c\u53ef\u80fd\u4f1a\u7a81\u7136\u5b9a\u4f4d\u5230\u67d0\u4e2a\u4ee3\u7801\u6bb5\uff0c\u5e76\u5728\u6784\u5efa\u63d0\u793a\u91cc\u8868\u793a\u67d0\u4e9b\u6587\u4ef6\u7684\u67d0\u6bb5\u4ee3\u7801\u6709\u95ee\u9898\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9",(0,i.jsx)(e.strong,{children:"\u5e76\u4e0d\u91cd\u8981"}),"\uff0c\u56e0\u4e3a\u4f60\u8fd8\u6ca1\u6709\u5f00\u59cb\u4fee\u6539\u6837\u672c\u6a21\u7ec4\u7684\u57fa\u7840\u6570\u636e\uff0c\u6240\u4ee5\u8fd9\u53ea\u662f\u6784\u5efa\u5728\u53d1\u795e\u7ecf(\xd7)\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ea\u8981\u5b83\u6ca1\u6709\u5bfc\u81f4\u4f60\u7684\u6784\u5efa\u51fa\u73b0",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\u7684\u63d0\u793a\u5e76\u7ec8\u6b62\uff0c\u8bf7\u76f4\u63a5\u65e0\u89c6\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",children:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684\u6784\u5efa\u4e0d\u5e78\u7684\u906d\u9047\u4e86",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"build\u680f\u76ee"}),"\u4e2d\u7684",(0,i.jsx)(e.strong,{children:"\u5237\u65b0\u6309\u94ae"}),"(\u548c\u6d4f\u89c8\u5668\u7684\u5237\u65b0\u6309\u94ae\u5f88\u50cf)\u91cd\u65b0\u6784\u5efa\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u627e\u4e0d\u5230\u90a3\u4e2a\u6309\u94ae\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u5173\u95ed\u9879\u76ee\u518d\u6253\u5f00\uff0cIDEA\u4f1a\u518d\u4e00\u6b21\u5c1d\u8bd5\u6784\u5efa\u3002"}),"\n",(0,i.jsx)(e.h4,{id:"\u9047\u5230\u56f0\u96be",children:"\u9047\u5230\u56f0\u96be"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u8fd8\u6709\u5176\u5b83\u95ee\u9898\uff0c\u53ef\u4ee5\u6765\u6211\u7ba1\u7406\u7684Ti works\u5bf9\u5916\u5f00\u653eQQ\u7fa4\uff1a",(0,i.jsx)(e.strong,{children:"953398884"})]}),"\n",(0,i.jsx)(e.p,{children:"\u6211\u5e73\u65f6\u6bd4\u8f83\u7e41\u5fd9\uff0c\u5f88\u5c11\u770b\u6d88\u606f\uff0c\u8bf7\u89c1\u8c05\u3002"}),"\n",(0,i.jsx)(e.h3,{id:"\u6d4b\u8bd5\u7a0b\u5e8f",children:"\u6d4b\u8bd5\u7a0b\u5e8f"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u6ca1\u6709\u4ec0\u4e48\u4e25\u91cd\u95ee\u9898\uff0c\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f1a\u5728\u7ed3\u5c3e\u663e\u793a\u4e00\u4e2a\u8d4f\u5fc3\u60a6\u76ee\u7684",(0,i.jsx)(e.code,{children:"BUILD SUCCESS"}),"\u5b57\u6837\u3002\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u521d\u6b21"}),"\u6784\u5efa\u901f\u5ea6\u5feb\u4e8e10\u5206\u949f\uff0c\u90a3\u4f60\u7684\u7f51\u7edc\u73af\u5883\u771f\u7684\u5f88\u4e0d\u9519((("]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e3a\u4e86",(0,i.jsx)(e.strong,{children:"\u68c0\u67e5"}),"\u4e00\u5207\u5982\u6211\u4eec\u6240\u9884\u671f\u7684\u90a3\u6837\u8fdb\u884c\uff0c\u4f60\u9700\u8981",(0,i.jsx)(e.strong,{children:"\u542f\u52a8\u4e00\u6b21"}),"\u90e8\u7f72\u7684MC\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f60\u7684\u8fd0\u884c\u680f\u4f1a\u51fa\u73b0\u8fd9\u6837\u56db\u4e2a\u8fd0\u884c\u9879\u76ee\uff1a",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c",(0,i.jsx)(e.code,{children:"Data"}),"\uff0c",(0,i.jsx)(e.code,{children:"Server"}),"\u548c",(0,i.jsx)(e.code,{children:"GameTestServer"}),"\uff0c\u5982\u56fe\u53f3\u4e0a\u89d2\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"\u5982\u679c\u6ca1\u6709\u51fa\u73b0\u5bf9\u5e94\u542f\u52a8\u6761\u76ee\uff0c\u8bf7\u5c1d\u8bd5\u4e00\u4e0b\u5173\u95edIDEA\u518d\u91cd\u65b0\u8fd0\u884c\u3002"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fd0\u884c\u680f\u5728\u8fd9\u91cc",src:s(4680).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u9009\u62e9",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c\u7136\u540e\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"\u8fd0\u884c"}),"\u3002\u4e00\u6bb5\u65f6\u95f4\u540e\uff0c\u968f\u7740log\u51fa\u6765\u7684\u5c31\u662fMinecraft\u7684\u754c\u9762\u4e86\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5f39\u51fa\u6e38\u620f\u754c\u9762",src:s(2253).A+"",width:"1920",height:"1042"})}),"\n",(0,i.jsx)(e.p,{children:"\u521b\u5efa\u4e00\u4e2a\u4e16\u754c\u8bd5\u8bd5\uff0c\u6ca1\u4ec0\u4e48\u95ee\u9898\u7684\u8bdd\uff0c\u5c31\u53ef\u4ee5\u9000\u51fa\u4e86\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ef\u8fd0\u884c\u7684\u9879\u76ee\u662f\u7531",(0,i.jsx)(e.strong,{children:"\u914d\u7f6e\u6587\u4ef6"}),"\u5b8c\u6210\u7684\uff0c\u5b83\u5b58\u5728\u4e8e\u4f60\u7684\u9879\u76ee\u4e0b\u7684",(0,i.jsx)(e.code,{children:".idea/workspace.xml"}),"\u4e2d\uff0c\u662f\u7531\u6784\u5efa\u81ea\u884c\u751f\u6210\u7684\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u81f3\u6b64\uff0c\u6211\u4eec\u5c31\u7b97",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u6210\u529f"}),"\u4e86\uff01\u5e86\u795d\u4e00\u4e0b\u53ed~"]}),"\n",(0,i.jsx)(e.h2,{id:"\u7ae0\u672b\u5c0f\u8bb0",children:"\u7ae0\u672b\u5c0f\u8bb0"}),"\n",(0,i.jsx)(e.p,{children:"\u662f\u4e0d\u662f\u6709\u4e9b\u7d2f\u5462\uff1f\u6211\u5199\u8fd9\u7ae0\u82b1\u4e86\u4e0d\u5c11\u65f6\u95f4\u5462\u3002\u6211\u8ba4\u4e3a\u5199\u6a21\u7ec4\u8fd9\u4ef6\u4e8b\uff0c\u6b32\u901f\u5219\u4e0d\u8fbe\u3002\u7ec6\u7ec6\u7422\u78e8\uff0c\u6216\u8bb8\u624d\u80fd\u6df1\u5ea6\u7406\u89e3\u5427\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5173\u4e8e\u6211\u7684\u6559\u7a0b\u201c\u7ec6\u81f4\u8fc7\u5ea6\u201d\u7684\u95ee\u9898\uff0c\u6211\u4f1a\u8fdb\u884c\u53cd\u601d\u7684\u3002\u4e0d\u8fc7\u6211\u8ba4\u4e3a\uff0c\u8bb2\u7684\u7ec6\u81f4\u4e00\u70b9\uff0c\u5174\u8bb8\u66f4\u80fd\u5e2e\u5230\u65b0\u624b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63d0\u9192\u4f60\u4e00\u4e0b\uff0c",(0,i.jsx)(e.strong,{children:"\u8ba9AI\u4ee3\u5199\u4ee3\u7801\u4e0d\u603b\u662f\u53ef\u53d6\u7684"}),"\uff0c\u5bf9\u4e8e\u8fd9\u79cd\u504f\u5c0f\u4f17\u7684\u9886\u57df\uff0c\u5c31\u8fdeGPT4\u90fd\u4f1a\u4e0d\u65f6\u5730\u51fa\u9519\u3002\u6240\u4ee5\uff0c\u5c3d\u5df1\u6240\u80fd\uff0c\u52aa\u529b\u63a2\u7d22\uff01"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5bf9\u4e86\uff0c\u6700\u8fd1\u5728B\u7ad9\u4e0a\u770b\u5230\u4e00\u9996\u597d\u542c\u7684\u6b4c(\u542bBGA)\uff1a\u6765\u81ea",(0,i.jsx)(e.code,{children:"Empty old City"}),"\u7684",(0,i.jsx)(e.code,{children:"Astronomy/\u5929\u6587\u5b66"}),"\uff0c\u4e16\u754c\u89c2\u8bbe\u8ba1\u4e5f\u5f88\u6709\u610f\u601d\uff0c\u5728\u6b64\u5206\u4eab\u7ed9\u4f60\uff01"]}),"\n",(0,i.jsx)("div",{style:{position:"relative",width:"100%",paddingBottom:"56.25%",height:0,overflow:"hidden"},children:(0,i.jsx)("iframe",{src:"//player.bilibili.com/player.html?isOutside=true&aid=113355796845449&bvid=BV1ZgyoYBEPw&cid=26425295593&p=1&autoplay=0&high_quality=1",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"none"},allowFullScreen:!0,sandbox:"allow-top-navigation allow-same-origin allow-forms allow-scripts"})}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsxs)(e.p,{children:["MakerTechno\u7f16\u8f91\u4e8e2024\u5e7411\u67089\u65e5\uff0c\u672c\u6587\u5206\u4eab\u81f3",(0,i.jsx)(e.code,{children:"\u51c9\u62cc\u5c0f\u9e3d"}),"\u7684\u4e2a\u4eba\u535a\u5ba2\u90e8\u7f72\uff0c\u5fae\u8c03\u540e\u5728B\u7ad9\u90e8\u7f72"]}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6539\u4e8e2025\u5e746\u670822\u65e5\uff0c\u589e\u6dfb\u4e86\u201c\u6dfb\u52a0\u63d2\u4ef6\u201d\u680f\u76ee\uff0c\u4fee\u6539\u4e86\u90e8\u5206\u5176\u5b83\u5185\u5bb9"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u7f16\u8f91\u4e8e2025\u5e748\u67083\u65e5\uff0c\u9488\u5bf9B\u7ad9\u8bc4\u8bba\u533a\u63d0\u95ee\u505a\u51fa\u4e86\u4fee\u6b63"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Copyright \xa9 2026 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(o,{...n})}):o(n)}},7136:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762-051d5fdd00c4441b2b2725dfc0c844d1.png"},7819:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u9879\u76ee\u8bbe\u7f6e-98c437520064a0e778ceaf6a97b7ae69.png"},7840:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java21\u8def\u5f84-15acc474f38d6791ee5cb973d5f70950.png"},9978:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939-342ca311c3eacf49f22a0154b8e00c70.png"}}]);
\ No newline at end of file
diff --git a/docs/assets/js/5b4eb003.1757ed5d.js b/docs/assets/js/5b4eb003.1757ed5d.js
deleted file mode 100644
index 795a19e..0000000
--- a/docs/assets/js/5b4eb003.1757ed5d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[3994],{7596:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>a,toc:()=>u});const a=JSON.parse('{"id":"\u9644\u52a0\u5185\u5bb9/NotThatAccess/nf1.21additionsnotthataccess","title":"\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa","description":"\u597d\u5427\uff0c\u8fd9\u5176\u5b9e\u5e94\u8be5\u662f\u5e38\u6001\uff0c\u8fd9\u91cc\u5c06\u4f1a\u7ed9\u51fa\u4e00\u4e2a\u7ecf\u8bd5\u9a8c\u5927\u6982\u7387\u53ef\u884c\u7684\u89e3\u51b3\u529e\u6cd5\u3002","source":"@site/tutorial/999-\u9644\u52a0\u5185\u5bb9/NotThatAccess/index.md","sourceDirName":"999-\u9644\u52a0\u5185\u5bb9/NotThatAccess","slug":"/nf1.21/additions/NotThatAccess","permalink":"/docs/tutorial/nf1.21/additions/NotThatAccess","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21additionsnotthataccess","slug":"/nf1.21/additions/NotThatAccess"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)","permalink":"/docs/tutorial/nf1.21/ep5"},"next":{"title":"\u6709\u5173AI","permalink":"/docs/tutorial/nf1.21/additions/AboutAI"}}');var t=r(4848),l=r(8453);const i={id:"nf1.21additionsnotthataccess",slug:"/nf1.21/additions/NotThatAccess"},o="\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa",s={},u=[];function p(n){const e={code:"code",h1:"h1",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,l.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa",children:"\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa"})}),"\n",(0,t.jsx)(e.p,{children:"\u597d\u5427\uff0c\u8fd9\u5176\u5b9e\u5e94\u8be5\u662f\u5e38\u6001\uff0c\u8fd9\u91cc\u5c06\u4f1a\u7ed9\u51fa\u4e00\u4e2a\u7ecf\u8bd5\u9a8c\u5927\u6982\u7387\u53ef\u884c\u7684\u89e3\u51b3\u529e\u6cd5\u3002"}),"\n",(0,t.jsx)(e.p,{children:"1.\u5728build.gradle\u4e2d\uff1a"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-gradle",children:"repositories {\n maven { url 'https://maven.aliyun.com/repository/public' }\n maven { url 'https://maven.aliyun.com/repository/central' }\n maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }\n maven { url 'https://maven.aliyun.com/repository/google' }\n maven { url 'https://maven.aliyun.com/repository/jcenter' }\n maven { url 'https://maven.aliyun.com/repository/releases' }\n mavenCentral()\n maven { url 'https://maven.neoforged.net/releases' }\n maven { url 'https://maven.minecraftforge.net/' }\n maven { url 'https://libraries.minecraft.net/' }\n}\n"})}),"\n",(0,t.jsx)(e.p,{children:"2.\u5728gradle-wrapper.properties\u4e2d\uff1a"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-properties",children:"distributionUrl=https\\://maven.aliyun.com/repository/public/gradle-{\u4f60\u539f\u672c\u7684gradle\u7248\u672c}-bin.zip\n"})}),"\n",(0,t.jsx)(e.p,{children:"\u6216"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-properties",children:"distributionUrl=https\\://mirrors.cloud.tencent.com/gradle/gradle-{\u4f60\u539f\u672c\u7684gradle\u7248\u672c}-bin.zip\n"})}),"\n",(0,t.jsx)(e.p,{children:"3.\u5728settings.gradle\u4e2d\uff1a"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-gradle",children:"pluginManagement {\n repositories {\n maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }\n maven { url 'https://maven.aliyun.com/repository/public' }\n gradlePluginPortal()\n }\n}\n\nplugins {\n id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'\n}\n\ndependencyResolutionManagement {\n repositories {\n maven { url 'https://maven.aliyun.com/repository/public' }\n maven { url 'https://maven.aliyun.com/repository/central' }\n maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }\n maven { url 'https://maven.aliyun.com/repository/spring' }\n maven { url 'https://maven.aliyun.com/repository/spring-plugin' }\n maven { url 'https://maven.aliyun.com/repository/google' }\n maven { url 'https://maven.aliyun.com/repository/jcenter' }\n maven { url 'https://maven.aliyun.com/repository/releases' }\n mavenCentral()\n gradlePluginPortal()\n }\n}\n\n"})}),"\n",(0,t.jsx)(e.p,{children:"4.\u65b0\u5efainit.gradle\u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-gradle",children:"allprojects {\n repositories {\n def aliyunPublic = 'https://maven.aliyun.com/repository/public'\n def aliyunCentral = 'https://maven.aliyun.com/repository/central'\n def aliyunGradlePlugin = 'https://maven.aliyun.com/repository/gradle-plugin'\n def aliyunGoogle = 'https://maven.aliyun.com/repository/google'\n def aliyunJcenter = 'https://maven.aliyun.com/repository/jcenter'\n def aliyunReleases = 'https://maven.aliyun.com/repository/releases'\n def aliyunSpring = 'https://maven.aliyun.com/repository/spring'\n def aliyunSpringPlugin = 'https://maven.aliyun.com/repository/spring-plugin'\n \n all { ArtifactRepository repo ->\n if (repo instanceof MavenArtifactRepository) {\n def url = repo.url.toString()\n if (url.startsWith('https://repo1.maven.org/maven2/') || \n url.startsWith('https://repo.maven.apache.org/maven2/')) {\n project.logger.lifecycle \"Repository ${repo.url} replaced by ${aliyunCentral}\"\n remove repo\n }\n }\n }\n \n maven { url aliyunPublic }\n maven { url aliyunCentral }\n maven { url aliyunGradlePlugin }\n maven { url aliyunGoogle }\n maven { url aliyunJcenter }\n maven { url aliyunReleases }\n maven { url aliyunSpring }\n maven { url aliyunSpringPlugin }\n mavenCentral()\n maven { url 'https://maven.neoforged.net/releases' }\n maven { url 'https://maven.minecraftforge.net/' }\n maven { url 'https://libraries.minecraft.net/' }\n }\n}\n\ngradle.allprojects { project ->\n project.buildscript {\n repositories {\n def aliyunPublic = 'https://maven.aliyun.com/repository/public'\n def aliyunCentral = 'https://maven.aliyun.com/repository/central'\n def aliyunGradlePlugin = 'https://maven.aliyun.com/repository/gradle-plugin'\n def aliyunGoogle = 'https://maven.aliyun.com/repository/google'\n def aliyunJcenter = 'https://maven.aliyun.com/repository/jcenter'\n def aliyunReleases = 'https://maven.aliyun.com/repository/releases'\n \n all { ArtifactRepository repo ->\n if (repo instanceof MavenArtifactRepository) {\n def url = repo.url.toString()\n if (url.startsWith('https://repo1.maven.org/maven2/') || \n url.startsWith('https://repo.maven.apache.org/maven2/')) {\n project.logger.lifecycle \"Repository ${repo.url} replaced by ${aliyunCentral}\"\n remove repo\n }\n }\n }\n \n maven { url aliyunPublic }\n maven { url aliyunCentral }\n maven { url aliyunGradlePlugin }\n maven { url aliyunGoogle }\n maven { url aliyunJcenter }\n maven { url aliyunReleases }\n mavenCentral()\n maven { url 'https://maven.neoforged.net/releases' }\n maven { url 'https://maven.minecraftforge.net/' }\n maven { url 'https://libraries.minecraft.net/' }\n }\n }\n}\n\nsettingsEvaluated { settings ->\n settings.pluginManagement {\n repositories {\n def mavenAliyunPublic = 'https://maven.aliyun.com/repository/public'\n def mavenAliyunGradlePlugin = 'https://maven.aliyun.com/repository/gradle-plugin'\n \n maven { url mavenAliyunPublic }\n maven { url mavenAliyunGradlePlugin }\n gradlePluginPortal()\n }\n }\n}\n"})}),"\n",(0,t.jsx)(e.hr,{}),"\n",(0,t.jsx)(e.p,{children:"yhz_cake\u5411NeoForge1.21Tutorial-\u7b2c\u4e8c\u7ae0\u8865\u5145\u4e8e2026\u5e744\u67083\u65e5"}),"\n",(0,t.jsx)(e.p,{children:"MakerTechno\u5355\u72ec\u63d0\u53d6\u4e3a\u9644\u52a0\u6587\u7ae0\u4e8e2026\u5e744\u67084\u65e5"}),"\n",(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:"Copyright \xa9 2026 yhz_cake. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,t.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function c(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(p,{...n})}):p(n)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/725.48aadc97.js b/docs/assets/js/725.48aadc97.js
deleted file mode 100644
index c77d9ba..0000000
--- a/docs/assets/js/725.48aadc97.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[725],{725:(t,e,i)=>{"use strict";i.d(e,{diagram:()=>ut});var n=i(8506),r=i(487),o=i(2753),s=i(6792),a=i(4505),h=i(1750),l=i(8731),d=i(165),c=i(8908),g=i(451),u={L:"left",R:"right",T:"top",B:"bottom"},f={L:(0,h.K2)(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:(0,h.K2)(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:(0,h.K2)(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:(0,h.K2)(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},p={L:(0,h.K2)((t,e)=>t-e+2,"L"),R:(0,h.K2)((t,e)=>t-2,"R"),T:(0,h.K2)((t,e)=>t-e+2,"T"),B:(0,h.K2)((t,e)=>t-2,"B")},y=(0,h.K2)(function(t){return m(t)?"L"===t?"R":"L":"T"===t?"B":"T"},"getOppositeArchitectureDirection"),v=(0,h.K2)(function(t){return"L"===t||"R"===t||"T"===t||"B"===t},"isArchitectureDirection"),m=(0,h.K2)(function(t){return"L"===t||"R"===t},"isArchitectureDirectionX"),E=(0,h.K2)(function(t){return"T"===t||"B"===t},"isArchitectureDirectionY"),N=(0,h.K2)(function(t,e){const i=m(t)&&E(e),n=E(t)&&m(e);return i||n},"isArchitectureDirectionXY"),T=(0,h.K2)(function(t){const e=t[0],i=t[1],n=m(e)&&E(i),r=E(e)&&m(i);return n||r},"isArchitecturePairXY"),A=(0,h.K2)(function(t){return"LL"!==t&&"RR"!==t&&"TT"!==t&&"BB"!==t},"isValidArchitectureDirectionPair"),w=(0,h.K2)(function(t,e){const i=`${t}${e}`;return A(i)?i:void 0},"getArchitectureDirectionPair"),L=(0,h.K2)(function([t,e],i){const n=i[0],r=i[1];return m(n)?E(r)?[t+("L"===n?-1:1),e+("T"===r?1:-1)]:[t+("L"===n?-1:1),e]:m(r)?[t+("L"===r?1:-1),e+("T"===n?1:-1)]:[t,e+("T"===n?1:-1)]},"shiftPositionByArchitectureDirectionPair"),I=(0,h.K2)(function(t){return"LT"===t||"TL"===t?[1,1]:"BL"===t||"LB"===t?[1,-1]:"BR"===t||"RB"===t?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),_=(0,h.K2)(function(t,e){return N(t,e)?"bend":m(t)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),C=(0,h.K2)(function(t){return"service"===t.type},"isArchitectureService"),M=(0,h.K2)(function(t){return"junction"===t.type},"isArchitectureJunction"),x=(0,h.K2)(t=>t.data(),"edgeData"),O=(0,h.K2)(t=>t.data(),"nodeData"),D=h.UI.architecture,R=new o.m(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:D,dataStructures:void 0,elements:{}})),b=(0,h.K2)(()=>{R.reset(),(0,h.IU)()},"clear"),G=(0,h.K2)(function({id:t,icon:e,in:i,title:n,iconText:r}){if(void 0!==R.records.registeredIds[t])throw new Error(`The service id [${t}] is already in use by another ${R.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw new Error(`The service [${t}] cannot be placed within itself`);if(void 0===R.records.registeredIds[i])throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if("node"===R.records.registeredIds[i])throw new Error(`The service [${t}]'s parent is not a group`)}R.records.registeredIds[t]="node",R.records.nodes[t]={id:t,type:"service",icon:e,iconText:r,title:n,edges:[],in:i}},"addService"),F=(0,h.K2)(()=>Object.values(R.records.nodes).filter(C),"getServices"),S=(0,h.K2)(function({id:t,in:e}){R.records.registeredIds[t]="node",R.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),P=(0,h.K2)(()=>Object.values(R.records.nodes).filter(M),"getJunctions"),U=(0,h.K2)(()=>Object.values(R.records.nodes),"getNodes"),Y=(0,h.K2)(t=>R.records.nodes[t],"getNode"),k=(0,h.K2)(function({id:t,icon:e,in:i,title:n}){if(void 0!==R.records.registeredIds[t])throw new Error(`The group id [${t}] is already in use by another ${R.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw new Error(`The group [${t}] cannot be placed within itself`);if(void 0===R.records.registeredIds[i])throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if("node"===R.records.registeredIds[i])throw new Error(`The group [${t}]'s parent is not a group`)}R.records.registeredIds[t]="group",R.records.groups[t]={id:t,icon:e,title:n,in:i}},"addGroup"),H=(0,h.K2)(()=>Object.values(R.records.groups),"getGroups"),X=(0,h.K2)(function({lhsId:t,rhsId:e,lhsDir:i,rhsDir:n,lhsInto:r,rhsInto:o,lhsGroup:s,rhsGroup:a,title:h}){if(!v(i))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${i}`);if(!v(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${n}`);if(void 0===R.records.nodes[t]&&void 0===R.records.groups[t])throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(void 0===R.records.nodes[e]&&void 0===R.records.groups[t])throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);const l=R.records.nodes[t].in,d=R.records.nodes[e].in;if(s&&l&&d&&l==d)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(a&&l&&d&&l==d)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const c={lhsId:t,lhsDir:i,lhsInto:r,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:o,rhsGroup:a,title:h};R.records.edges.push(c),R.records.nodes[t]&&R.records.nodes[e]&&(R.records.nodes[t].edges.push(R.records.edges[R.records.edges.length-1]),R.records.nodes[e].edges.push(R.records.edges[R.records.edges.length-1]))},"addEdge"),z=(0,h.K2)(()=>R.records.edges,"getEdges"),B=(0,h.K2)(()=>{if(void 0===R.records.dataStructures){const t={},e=Object.entries(R.records.nodes).reduce((e,[i,n])=>(e[i]=n.edges.reduce((e,n)=>{const r=Y(n.lhsId)?.in,o=Y(n.rhsId)?.in;if(r&&o&&r!==o){const e=_(n.lhsDir,n.rhsDir);"bend"!==e&&(t[r]??={},t[r][o]=e,t[o]??={},t[o][r]=e)}if(n.lhsId===i){const t=w(n.lhsDir,n.rhsDir);t&&(e[t]=n.rhsId)}else{const t=w(n.rhsDir,n.lhsDir);t&&(e[t]=n.lhsId)}return e},{}),e),{}),i=Object.keys(e)[0],n={[i]:1},r=Object.keys(e).reduce((t,e)=>e===i?t:{...t,[e]:1},{}),o=(0,h.K2)(t=>{const i={[t]:[0,0]},o=[t];for(;o.length>0;){const t=o.shift();if(t){n[t]=1,delete r[t];const s=e[t],[a,h]=i[t];Object.entries(s).forEach(([t,e])=>{n[e]||(i[e]=L([a,h],t),o.push(e))})}}return i},"BFS"),s=[o(i)];for(;Object.keys(r).length>0;)s.push(o(Object.keys(r)[0]));R.records.dataStructures={adjList:e,spatialMaps:s,groupAlignments:t}}return R.records.dataStructures},"getDataStructures"),V=(0,h.K2)((t,e)=>{R.records.elements[t]=e},"setElementForId"),W=(0,h.K2)(t=>R.records.elements[t],"getElementById"),j=(0,h.K2)(()=>(0,s.$t)({...D,...(0,h.zj)().architecture}),"getConfig"),$={clear:b,setDiagramTitle:h.ke,getDiagramTitle:h.ab,setAccTitle:h.SV,getAccTitle:h.iN,setAccDescription:h.EI,getAccDescription:h.m7,getConfig:j,addService:G,getServices:F,addJunction:S,getJunctions:P,getNodes:U,getNode:Y,addGroup:k,getGroups:H,addEdge:X,getEdges:z,setElementForId:V,getElementById:W,getDataStructures:B};function q(t){return j()[t]}(0,h.K2)(q,"getConfigField");var K=(0,h.K2)((t,e)=>{(0,r.S)(t,e),t.groups.map(e.addGroup),t.services.map(t=>e.addService({...t,type:"service"})),t.junctions.map(t=>e.addJunction({...t,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),Z={parse:(0,h.K2)(async t=>{const e=await(0,l.qg)("architecture",t);h.Rm.debug(e),K(e,$)},"parse")},Q=(0,h.K2)(t=>`\n .edge {\n stroke-width: ${t.archEdgeWidth};\n stroke: ${t.archEdgeColor};\n fill: none;\n }\n\n .arrow {\n fill: ${t.archEdgeArrowColor};\n }\n\n .node-bkg {\n fill: none;\n stroke: ${t.archGroupBorderColor};\n stroke-width: ${t.archGroupBorderWidth};\n stroke-dasharray: 8;\n }\n .node-icon-text {\n display: flex; \n align-items: center;\n }\n \n .node-icon-text > div {\n color: #fff;\n margin: 1px;\n height: fit-content;\n text-align: center;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n }\n`,"getStyles"),J=(0,h.K2)(t=>` ${t} `,"wrapIcon"),tt={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:J(' ')},server:{body:J(' ')},disk:{body:J(' ')},internet:{body:J(' ')},cloud:{body:J(' ')},unknown:n.Gc,blank:{body:J("")}}},et=(0,h.K2)(async function(t,e){const i=q("padding"),r=q("iconSize"),o=r/2,s=r/6,a=s/2;await Promise.all(e.edges().map(async e=>{const{source:r,sourceDir:l,sourceArrow:d,sourceGroup:c,target:g,targetDir:u,targetArrow:y,targetGroup:v,label:A}=x(e);let{x:L,y:_}=e[0].sourceEndpoint();const{x:C,y:M}=e[0].midpoint();let{x:O,y:D}=e[0].targetEndpoint();const R=i+4;if(c&&(m(l)?L+="L"===l?-R:R:_+="T"===l?-R:R+18),v&&(m(u)?O+="L"===u?-R:R:D+="T"===u?-R:R+18),c||"junction"!==$.getNode(r)?.type||(m(l)?L+="L"===l?o:-o:_+="T"===l?o:-o),v||"junction"!==$.getNode(g)?.type||(m(u)?O+="L"===u?o:-o:D+="T"===u?o:-o),e[0]._private.rscratch){const e=t.insert("g");if(e.insert("path").attr("d",`M ${L},${_} L ${C},${M} L${O},${D} `).attr("class","edge"),d){const t=m(l)?p[l](L,s):L-a,i=E(l)?p[l](_,s):_-a;e.insert("polygon").attr("points",f[l](s)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(y){const t=m(u)?p[u](O,s):O-a,i=E(u)?p[u](D,s):D-a;e.insert("polygon").attr("points",f[u](s)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(A){const t=N(l,u)?"XY":m(l)?"X":"Y";let i=0;i="X"===t?Math.abs(L-O):"Y"===t?Math.abs(_-D)/1.5:Math.abs(L-O)/2;const r=e.append("g");if(await(0,n.GZ)(r,A,{useHtmlLabels:!1,width:i,classes:"architecture-service-label"},(0,h.D7)()),r.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),"X"===t)r.attr("transform","translate("+C+", "+M+")");else if("Y"===t)r.attr("transform","translate("+C+", "+M+") rotate(-90)");else if("XY"===t){const t=w(l,u);if(t&&T(t)){const e=r.node().getBoundingClientRect(),[i,n]=I(t);r.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*i*n*45})`);const o=r.node().getBoundingClientRect();r.attr("transform",`\n translate(${C}, ${M-e.height/2})\n translate(${i*o.width/2}, ${n*o.height/2})\n rotate(${-1*i*n*45}, 0, ${e.height/2})\n `)}}}}}))},"drawEdges"),it=(0,h.K2)(async function(t,e){const i=.75*q("padding"),r=q("fontSize"),o=q("iconSize")/2;await Promise.all(e.nodes().map(async e=>{const s=O(e);if("group"===s.type){const{h:a,w:l,x1:d,y1:c}=e.boundingBox();t.append("rect").attr("x",d+o).attr("y",c+o).attr("width",l).attr("height",a).attr("class","node-bkg");const g=t.append("g");let u=d,f=c;if(s.icon){const t=g.append("g");t.html(`${await(0,n.WY)(s.icon,{height:i,width:i,fallbackPrefix:tt.prefix})} `),t.attr("transform","translate("+(u+o+1)+", "+(f+o+1)+")"),u+=i,f+=r/2-1-2}if(s.label){const t=g.append("g");await(0,n.GZ)(t,s.label,{useHtmlLabels:!1,width:l,classes:"architecture-service-label"},(0,h.D7)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),t.attr("transform","translate("+(u+o+4)+", "+(f+o+2)+")")}}}))},"drawGroups"),nt=(0,h.K2)(async function(t,e,i){for(const r of i){const i=e.append("g"),o=q("iconSize");if(r.title){const t=i.append("g");await(0,n.GZ)(t,r.title,{useHtmlLabels:!1,width:1.5*o,classes:"architecture-service-label"},(0,h.D7)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),t.attr("transform","translate("+o/2+", "+o+")")}const s=i.append("g");if(r.icon)s.html(`${await(0,n.WY)(r.icon,{height:o,width:o,fallbackPrefix:tt.prefix})} `);else if(r.iconText){s.html(`${await(0,n.WY)("blank",{height:o,width:o,fallbackPrefix:tt.prefix})} `);const t=s.append("g").append("foreignObject").attr("width",o).attr("height",o).append("div").attr("class","node-icon-text").attr("style",`height: ${o}px;`).append("div").html(r.iconText),e=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((o-2)/e)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+r.id).attr("d",`M0 ${o} v${-o} q0,-5 5,-5 h${o} q5,0 5,5 v${o} H0 Z`);i.attr("class","architecture-service");const{width:a,height:l}=i._groups[0][0].getBBox();r.width=a,r.height=l,t.setElementForId(r.id,i)}return 0},"drawServices"),rt=(0,h.K2)(function(t,e,i){i.forEach(i=>{const n=e.append("g"),r=q("iconSize");n.append("g").append("rect").attr("id","node-"+i.id).attr("fill-opacity","0").attr("width",r).attr("height",r),n.attr("class","architecture-junction");const{width:o,height:s}=n._groups[0][0].getBBox();n.width=o,n.height=s,t.setElementForId(i.id,n)})},"drawJunctions");function ot(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:q("iconSize"),height:q("iconSize")},classes:"node-service"})})}function st(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:q("iconSize"),height:q("iconSize")},classes:"node-junction"})})}function at(t,e){e.nodes().map(e=>{const i=O(e);if("group"===i.type)return;i.x=e.position().x,i.y=e.position().y;t.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")")})}function ht(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})})}function lt(t,e){t.forEach(t=>{const{lhsId:i,rhsId:n,lhsInto:r,lhsGroup:o,rhsInto:s,lhsDir:a,rhsDir:h,rhsGroup:l,title:d}=t,c=N(t.lhsDir,t.rhsDir)?"segments":"straight",g={id:`${i}-${n}`,label:d,source:i,sourceDir:a,sourceArrow:r,sourceGroup:o,sourceEndpoint:"L"===a?"0 50%":"R"===a?"100% 50%":"T"===a?"50% 0":"50% 100%",target:n,targetDir:h,targetArrow:s,targetGroup:l,targetEndpoint:"L"===h?"0 50%":"R"===h?"100% 50%":"T"===h?"50% 0":"50% 100%"};e.add({group:"edges",data:g,classes:c})})}function dt(t,e,i){const n=(0,h.K2)((t,e)=>Object.entries(t).reduce((t,[n,r])=>{let o=0;const s=Object.entries(r);if(1===s.length)return t[n]=s[0][1],t;for(let a=0;a{const i={},r={};return Object.entries(e).forEach(([e,[n,o]])=>{const s=t.getNode(e)?.in??"default";i[o]??={},i[o][s]??=[],i[o][s].push(e),r[n]??={},r[n][s]??=[],r[n][s].push(e)}),{horiz:Object.values(n(i,"horizontal")).filter(t=>t.length>1),vert:Object.values(n(r,"vertical")).filter(t=>t.length>1)}}),[o,s]=r.reduce(([t,e],{horiz:i,vert:n})=>[[...t,...i],[...e,...n]],[[],[]]);return{horizontal:o,vertical:s}}function ct(t){const e=[],i=(0,h.K2)(t=>`${t[0]},${t[1]}`,"posToStr"),n=(0,h.K2)(t=>t.split(",").map(t=>parseInt(t)),"strToPos");return t.forEach(t=>{const r=Object.fromEntries(Object.entries(t).map(([t,e])=>[i(e),t])),o=[i([0,0])],s={},a={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;o.length>0;){const t=o.shift();if(t){s[t]=1;const h=r[t];if(h){const l=n(t);Object.entries(a).forEach(([t,n])=>{const a=i([l[0]+n[0],l[1]+n[1]]),d=r[a];d&&!s[a]&&(o.push(a),e.push({[u[t]]:d,[u[y(t)]]:h,gap:1.5*q("iconSize")}))})}}}}),e}function gt(t,e,i,n,r,{spatialMaps:o,groupAlignments:s}){return new Promise(a=>{const l=(0,g.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),c=(0,d.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${q("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${q("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});l.remove(),ht(i,c),ot(t,c),st(e,c),lt(n,c);const u=dt(r,o,s),f=ct(o),p=c.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){const[e,i]=t.connectedNodes(),{parent:n}=O(e),{parent:r}=O(i);return n===r?1.5*q("iconSize"):.5*q("iconSize")},edgeElasticity(t){const[e,i]=t.connectedNodes(),{parent:n}=O(e),{parent:r}=O(i);return n===r?.45:.001},alignmentConstraint:u,relativePlacementConstraint:f});p.one("layoutstop",()=>{function t(t,e,i,n){let r,o;const{x:s,y:a}=t,{x:h,y:l}=e;o=(n-a+(s-i)*(a-l)/(s-h))/Math.sqrt(1+Math.pow((a-l)/(s-h),2)),r=Math.sqrt(Math.pow(n-a,2)+Math.pow(i-s,2)-Math.pow(o,2));r/=Math.sqrt(Math.pow(h-s,2)+Math.pow(l-a,2));let d=(h-s)*(n-a)-(l-a)*(i-s);switch(!0){case d>=0:d=1;break;case d<0:d=-1}let c=(h-s)*(i-s)+(l-a)*(n-a);switch(!0){case c>=0:c=1;break;case c<0:c=-1}return o=Math.abs(o)*d,r*=c,{distances:o,weights:r}}(0,h.K2)(t,"getSegmentWeights"),c.startBatch();for(const e of Object.values(c.edges()))if(e.data?.()){const{x:i,y:n}=e.source().position(),{x:r,y:o}=e.target().position();if(i!==r&&n!==o){const i=e.sourceEndpoint(),n=e.targetEndpoint(),{sourceDir:r}=x(e),[o,s]=E(r)?[i.x,n.y]:[n.x,i.y],{weights:a,distances:h}=t(i,n,o,s);e.style("segment-distances",h),e.style("segment-weights",a)}}c.endBatch(),p.run()}),p.run(),c.ready(t=>{h.Rm.info("Ready",t),a(c)})})}(0,n.pC)([{name:tt.prefix,icons:tt}]),d.A.use(c),(0,h.K2)(ot,"addServices"),(0,h.K2)(st,"addJunctions"),(0,h.K2)(at,"positionNodes"),(0,h.K2)(ht,"addGroups"),(0,h.K2)(lt,"addEdges"),(0,h.K2)(dt,"getAlignments"),(0,h.K2)(ct,"getRelativeConstraints"),(0,h.K2)(gt,"layoutArchitecture");var ut={parser:Z,db:$,renderer:{draw:(0,h.K2)(async(t,e,i,n)=>{const r=n.db,o=r.getServices(),s=r.getJunctions(),l=r.getGroups(),d=r.getEdges(),c=r.getDataStructures(),g=(0,a.D)(e),u=g.append("g");u.attr("class","architecture-edges");const f=g.append("g");f.attr("class","architecture-services");const p=g.append("g");p.attr("class","architecture-groups"),await nt(r,f,o),rt(r,f,s);const y=await gt(o,s,l,d,r,c);await et(u,y),await it(p,y),at(r,y),(0,h.ot)(void 0,g,q("padding"),q("useMaxWidth"))},"draw")},styles:Q}},1709:function(t,e,i){var n;n=function(t){return(()=>{"use strict";var e={45:(t,e,i)=>{var n={};n.layoutBase=i(551),n.CoSEConstants=i(806),n.CoSEEdge=i(767),n.CoSEGraph=i(880),n.CoSEGraphManager=i(578),n.CoSELayout=i(765),n.CoSENode=i(991),n.ConstraintHandler=i(902),t.exports=n},806:(t,e,i)=>{var n=i(551).FDLayoutConstants;function r(){}for(var o in n)r[o]=n[o];r.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,r.DEFAULT_RADIAL_SEPARATION=n.DEFAULT_EDGE_LENGTH,r.DEFAULT_COMPONENT_SEPERATION=60,r.TILE=!0,r.TILING_PADDING_VERTICAL=10,r.TILING_PADDING_HORIZONTAL=10,r.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,r.ENFORCE_CONSTRAINTS=!0,r.APPLY_LAYOUT=!0,r.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,r.TREE_REDUCTION_ON_INCREMENTAL=!0,r.PURE_INCREMENTAL=r.DEFAULT_INCREMENTAL,t.exports=r},767:(t,e,i)=>{var n=i(551).FDLayoutEdge;function r(t,e,i){n.call(this,t,e,i)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},880:(t,e,i)=>{var n=i(551).LGraph;function r(t,e,i){n.call(this,t,e,i)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},578:(t,e,i)=>{var n=i(551).LGraphManager;function r(t){n.call(this,t)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},765:(t,e,i)=>{var n=i(551).FDLayout,r=i(578),o=i(880),s=i(991),a=i(767),h=i(806),l=i(902),d=i(551).FDLayoutConstants,c=i(551).LayoutConstants,g=i(551).Point,u=i(551).PointD,f=i(551).DimensionD,p=i(551).Layout,y=i(551).Integer,v=i(551).IGeometry,m=i(551).LGraph,E=i(551).Transform,N=i(551).LinkedList;function T(){n.call(this),this.toBeTiled={},this.constraints={}}for(var A in T.prototype=Object.create(n.prototype),n)T[A]=n[A];T.prototype.newGraphManager=function(){var t=new r(this);return this.graphManager=t,t},T.prototype.newGraph=function(t){return new o(null,this.graphManager,t)},T.prototype.newNode=function(t){return new s(this.graphManager,t)},T.prototype.newEdge=function(t){return new a(null,null,t)},T.prototype.initParameters=function(){n.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=d.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=d.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},T.prototype.initSpringEmbedder=function(){n.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/d.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},T.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},T.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)h.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),e=new Set(this.getAllNodes()),i=this.nodesWithGravity.filter(function(t){return e.has(t)}),this.graphManager.setAllNodesToApplyGravitation(i));else{var t=this.getFlatForest();if(t.length>0)this.positionNodesRadially(t);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),i=this.nodesWithGravity.filter(function(t){return e.has(t)});this.graphManager.setAllNodesToApplyGravitation(i),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(l.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),h.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var i=!this.isTreeGrowing&&!this.isGrowthFinished,n=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(i,n),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},i=0;i0&&this.updateDisplacements(),e=0;e0&&(n.fixedNodeWeight=o)}if(this.constraints.relativePlacementConstraint){var s=new Map,a=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(e){t.fixedNodesOnHorizontal.add(e),t.fixedNodesOnVertical.add(e)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical){var l=this.constraints.alignmentConstraint.vertical;for(i=0;i=2*t.length/3;n--)e=Math.floor(Math.random()*(n+1)),i=t[n],t[n]=t[e],t[e]=i;return t},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(e){if(e.left){var i=s.has(e.left)?s.get(e.left):e.left,n=s.has(e.right)?s.get(e.right):e.right;t.nodesInRelativeHorizontal.includes(i)||(t.nodesInRelativeHorizontal.push(i),t.nodeToRelativeConstraintMapHorizontal.set(i,[]),t.dummyToNodeForVerticalAlignment.has(i)?t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(i)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(i).getCenterX())),t.nodesInRelativeHorizontal.includes(n)||(t.nodesInRelativeHorizontal.push(n),t.nodeToRelativeConstraintMapHorizontal.set(n,[]),t.dummyToNodeForVerticalAlignment.has(n)?t.nodeToTempPositionMapHorizontal.set(n,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(n)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(n,t.idToNodeMap.get(n).getCenterX())),t.nodeToRelativeConstraintMapHorizontal.get(i).push({right:n,gap:e.gap}),t.nodeToRelativeConstraintMapHorizontal.get(n).push({left:i,gap:e.gap})}else{var r=a.has(e.top)?a.get(e.top):e.top,o=a.has(e.bottom)?a.get(e.bottom):e.bottom;t.nodesInRelativeVertical.includes(r)||(t.nodesInRelativeVertical.push(r),t.nodeToRelativeConstraintMapVertical.set(r,[]),t.dummyToNodeForHorizontalAlignment.has(r)?t.nodeToTempPositionMapVertical.set(r,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(r)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(r,t.idToNodeMap.get(r).getCenterY())),t.nodesInRelativeVertical.includes(o)||(t.nodesInRelativeVertical.push(o),t.nodeToRelativeConstraintMapVertical.set(o,[]),t.dummyToNodeForHorizontalAlignment.has(o)?t.nodeToTempPositionMapVertical.set(o,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(o)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(o,t.idToNodeMap.get(o).getCenterY())),t.nodeToRelativeConstraintMapVertical.get(r).push({bottom:o,gap:e.gap}),t.nodeToRelativeConstraintMapVertical.get(o).push({top:r,gap:e.gap})}});else{var c=new Map,g=new Map;this.constraints.relativePlacementConstraint.forEach(function(t){if(t.left){var e=s.has(t.left)?s.get(t.left):t.left,i=s.has(t.right)?s.get(t.right):t.right;c.has(e)?c.get(e).push(i):c.set(e,[i]),c.has(i)?c.get(i).push(e):c.set(i,[e])}else{var n=a.has(t.top)?a.get(t.top):t.top,r=a.has(t.bottom)?a.get(t.bottom):t.bottom;g.has(n)?g.get(n).push(r):g.set(n,[r]),g.has(r)?g.get(r).push(n):g.set(r,[n])}});var u=function(t,e){var i=[],n=[],r=new N,o=new Set,s=0;return t.forEach(function(a,h){if(!o.has(h)){i[s]=[],n[s]=!1;var l=h;for(r.push(l),o.add(l),i[s].push(l);0!=r.length;)l=r.shift(),e.has(l)&&(n[s]=!0),t.get(l).forEach(function(t){o.has(t)||(r.push(t),o.add(t),i[s].push(t))});s++}}),{components:i,isFixed:n}},f=u(c,t.fixedNodesOnHorizontal);this.componentsOnHorizontal=f.components,this.fixedComponentsOnHorizontal=f.isFixed;var p=u(g,t.fixedNodesOnVertical);this.componentsOnVertical=p.components,this.fixedComponentsOnVertical=p.isFixed}}},T.prototype.updateDisplacements=function(){var t=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(e){var i=t.idToNodeMap.get(e.nodeId);i.displacementX=0,i.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var e=this.constraints.alignmentConstraint.vertical,i=0;i1)for(a=0;an&&(n=Math.floor(s.y)),o=Math.floor(s.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new u(c.WORLD_CENTER_X-s.x/2,c.WORLD_CENTER_Y-s.y/2))},T.radialLayout=function(t,e,i){var n=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(e,null,0,359,0,n);var r=m.calculateBounds(t),o=new E;o.setDeviceOrgX(r.getMinX()),o.setDeviceOrgY(r.getMinY()),o.setWorldOrgX(i.x),o.setWorldOrgY(i.y);for(var s=0;s1;){var y=p[0];p.splice(0,1);var m=d.indexOf(y);m>=0&&d.splice(m,1),f--,c--}g=null!=e?(d.indexOf(p[0])+1)%f:0;for(var E=Math.abs(n-i)/c,N=g;u!=c;N=++N%f){var A=d[N].getOtherEnd(t);if(A!=e){var w=(i+u*E)%360,L=(w+E)%360;T.branchRadialLayout(A,t,w,L,r+o,o),u++}}},T.maxDiagonalInTree=function(t){for(var e=y.MIN_VALUE,i=0;ie&&(e=n)}return e},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var i=[],n=this.graphManager.getAllNodes(),r=0;r1){var n="DummyCompound_"+i;t.memberGroups[n]=e[i];var r=e[i][0].getParent(),o=new s(t.graphManager);o.id=n,o.paddingLeft=r.paddingLeft||0,o.paddingRight=r.paddingRight||0,o.paddingBottom=r.paddingBottom||0,o.paddingTop=r.paddingTop||0,t.idToDummyNode[n]=o;var a=t.getGraphManager().add(t.newGraph(),o),h=r.getChild();h.add(o);for(var l=0;lr?(n.rect.x-=(n.labelWidth-r)/2,n.setWidth(n.labelWidth),n.labelMarginLeft=(n.labelWidth-r)/2):"right"==n.labelPosHorizontal&&n.setWidth(r+n.labelWidth)),n.labelHeight&&("top"==n.labelPosVertical?(n.rect.y-=n.labelHeight,n.setHeight(o+n.labelHeight),n.labelMarginTop=n.labelHeight):"center"==n.labelPosVertical&&n.labelHeight>o?(n.rect.y-=(n.labelHeight-o)/2,n.setHeight(n.labelHeight),n.labelMarginTop=(n.labelHeight-o)/2):"bottom"==n.labelPosVertical&&n.setHeight(o+n.labelHeight))}})},T.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],i=e.id,n=e.paddingLeft,r=e.paddingTop,o=e.labelMarginLeft,s=e.labelMarginTop;this.adjustLocations(this.tiledMemberPack[i],e.rect.x,e.rect.y,n,r,o,s)}},T.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach(function(i){var n=t.idToDummyNode[i],r=n.paddingLeft,o=n.paddingTop,s=n.labelMarginLeft,a=n.labelMarginTop;t.adjustLocations(e[i],n.rect.x,n.rect.y,r,o,s,a)})},T.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var i=t.getChild();if(null==i)return this.toBeTiled[e]=!1,!1;for(var n=i.getNodes(),r=0;r0)return this.toBeTiled[e]=!1,!1;if(null!=o.getChild()){if(!this.getToBeTiled(o))return this.toBeTiled[e]=!1,!1}else this.toBeTiled[o.id]=!1}return this.toBeTiled[e]=!0,!0},T.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),i=0,n=0;nd&&(d=g.rect.height)}i+=d+t.verticalPadding}},T.prototype.tileCompoundMembers=function(t,e){var i=this;this.tiledMemberPack=[],Object.keys(t).forEach(function(n){var r=e[n];if(i.tiledMemberPack[n]=i.tileNodes(t[n],r.paddingLeft+r.paddingRight),r.rect.width=i.tiledMemberPack[n].width,r.rect.height=i.tiledMemberPack[n].height,r.setCenter(i.tiledMemberPack[n].centerX,i.tiledMemberPack[n].centerY),r.labelMarginLeft=0,r.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var o=r.rect.width,s=r.rect.height;r.labelWidth&&("left"==r.labelPosHorizontal?(r.rect.x-=r.labelWidth,r.setWidth(o+r.labelWidth),r.labelMarginLeft=r.labelWidth):"center"==r.labelPosHorizontal&&r.labelWidth>o?(r.rect.x-=(r.labelWidth-o)/2,r.setWidth(r.labelWidth),r.labelMarginLeft=(r.labelWidth-o)/2):"right"==r.labelPosHorizontal&&r.setWidth(o+r.labelWidth)),r.labelHeight&&("top"==r.labelPosVertical?(r.rect.y-=r.labelHeight,r.setHeight(s+r.labelHeight),r.labelMarginTop=r.labelHeight):"center"==r.labelPosVertical&&r.labelHeight>s?(r.rect.y-=(r.labelHeight-s)/2,r.setHeight(r.labelHeight),r.labelMarginTop=(r.labelHeight-s)/2):"bottom"==r.labelPosVertical&&r.setHeight(s+r.labelHeight))}})},T.prototype.tileNodes=function(t,e){var i=this.tileNodesByFavoringDim(t,e,!0),n=this.tileNodesByFavoringDim(t,e,!1),r=this.getOrgRatio(i);return this.getOrgRatio(n)a&&(a=t.getWidth())});var l,d=o/r,c=s/r,g=Math.pow(i-n,2)+4*(d+n)*(c+i)*r,u=(n-i+Math.sqrt(g))/(2*(d+n));e?(l=Math.ceil(u))==u&&l++:l=Math.floor(u);var f=l*(d+n)-n;return a>f&&(f=a),f+=2*n},T.prototype.tileNodesByFavoringDim=function(t,e,i){var n=h.TILING_PADDING_VERTICAL,r=h.TILING_PADDING_HORIZONTAL,o=h.TILING_COMPARE_BY,s={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:n,horizontalPadding:r,centerX:0,centerY:0};o&&(s.idealRowWidth=this.calcIdealRowWidth(t,i));var a=function(t){return t.rect.width*t.rect.height},l=function(t,e){return a(e)-a(t)};t.sort(function(t,e){var i=l;return s.idealRowWidth?(i=o)(t.id,e.id):i(t,e)});for(var d=0,c=0,g=0;g0&&(o+=t.horizontalPadding),t.rowWidth[i]=o,t.width0&&(s+=t.verticalPadding);var a=0;s>t.rowHeight[i]&&(a=t.rowHeight[i],t.rowHeight[i]=s,a=t.rowHeight[i]-a),t.height+=a,t.rows[i].push(e)},T.prototype.getShortestRowIndex=function(t){for(var e=-1,i=Number.MAX_VALUE,n=0;ni&&(e=n,i=t.rowWidth[n]);return e},T.prototype.canAddHorizontal=function(t,e,i){if(t.idealRowWidth){var n=t.rows.length-1;return t.rowWidth[n]+e+t.horizontalPadding<=t.idealRowWidth}var r=this.getShortestRowIndex(t);if(r<0)return!0;var o=t.rowWidth[r];if(o+t.horizontalPadding+e<=t.width)return!0;var s,a,h=0;return t.rowHeight[r]0&&(h=i+t.verticalPadding-t.rowHeight[r]),s=t.width-o>=e+t.horizontalPadding?(t.height+h)/(o+e+t.horizontalPadding):(t.height+h)/t.width,h=i+t.verticalPadding,(a=t.widtho&&e!=i){n.splice(-1,1),t.rows[i].push(r),t.rowWidth[e]=t.rowWidth[e]-o,t.rowWidth[i]=t.rowWidth[i]+o,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var s=Number.MIN_VALUE,a=0;as&&(s=n[a].height);e>0&&(s+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[i];t.rowHeight[e]=s,t.rowHeight[i]0)for(var c=r;c<=o;c++)l[0]+=this.grid[c][s-1].length+this.grid[c][s].length-1;if(o0)for(c=s;c<=a;c++)l[3]+=this.grid[r-1][c].length+this.grid[r][c].length-1;for(var g,u,f=y.MAX_VALUE,p=0;p{var n=i(551).FDLayoutNode,r=i(551).IMath;function o(t,e,i,r){n.call(this,t,e,i,r)}for(var s in o.prototype=Object.create(n.prototype),n)o[s]=n[s];o.prototype.calculateDisplacement=function(){var t=this.graphManager.getLayout();null!=this.getChild()&&this.fixedNodeWeight?(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*r.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*r.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},o.prototype.propogateDisplacementToChildren=function(t,e){for(var i,n=this.getChild().getNodes(),r=0;r{function n(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e0){var o=0;n.forEach(function(t){"horizontal"==e?(c.set(t,h.has(t)?l[h.get(t)]:r.get(t)),o+=c.get(t)):(c.set(t,h.has(t)?d[h.get(t)]:r.get(t)),o+=c.get(t))}),o/=n.length,t.forEach(function(t){i.has(t)||c.set(t,o)})}else{var s=0;t.forEach(function(t){s+="horizontal"==e?h.has(t)?l[h.get(t)]:r.get(t):h.has(t)?d[h.get(t)]:r.get(t)}),s/=t.length,t.forEach(function(t){c.set(t,s)})}});for(var f=function(){var n=u.shift();t.get(n).forEach(function(t){if(c.get(t.id)s&&(s=m),Ea&&(a=E)}}catch(C){u=!0,f=C}finally{try{!g&&y.return&&y.return()}finally{if(u)throw f}}var N=(n+s)/2-(o+a)/2,T=!0,A=!1,w=void 0;try{for(var L,I=t[Symbol.iterator]();!(T=(L=I.next()).done);T=!0){var _=L.value;c.set(_,c.get(_)+N)}}catch(C){A=!0,w=C}finally{try{!T&&I.return&&I.return()}finally{if(A)throw w}}})}return c},v=function(t){var e=0,i=0,n=0,r=0;if(t.forEach(function(t){t.left?l[h.get(t.left)]-l[h.get(t.right)]>=0?e++:i++:d[h.get(t.top)]-d[h.get(t.bottom)]>=0?n++:r++}),e>i&&n>r)for(var o=0;oi)for(var s=0;sr)for(var a=0;a1)e.fixedNodeConstraint.forEach(function(t,e){T[e]=[t.position.x,t.position.y],A[e]=[l[h.get(t.nodeId)],d[h.get(t.nodeId)]]}),w=!0;else if(e.alignmentConstraint)!function(){var t=0;if(e.alignmentConstraint.vertical){for(var i=e.alignmentConstraint.vertical,r=function(e){var r=new Set;i[e].forEach(function(t){r.add(t)});var o=new Set([].concat(n(r)).filter(function(t){return I.has(t)})),s=void 0;s=o.size>0?l[h.get(o.values().next().value)]:p(r).x,i[e].forEach(function(e){T[t]=[s,d[h.get(e)]],A[t]=[l[h.get(e)],d[h.get(e)]],t++})},o=0;o0?l[h.get(r.values().next().value)]:p(i).y,s[e].forEach(function(e){T[t]=[l[h.get(e)],o],A[t]=[l[h.get(e)],d[h.get(e)]],t++})},c=0;cx&&(x=M[D].length,O=D);if(x0){var j={x:0,y:0};e.fixedNodeConstraint.forEach(function(t,e){var i,n,r={x:l[h.get(t.nodeId)],y:d[h.get(t.nodeId)]},o=t.position,s=(n=r,{x:(i=o).x-n.x,y:i.y-n.y});j.x+=s.x,j.y+=s.y}),j.x/=e.fixedNodeConstraint.length,j.y/=e.fixedNodeConstraint.length,l.forEach(function(t,e){l[e]+=j.x}),d.forEach(function(t,e){d[e]+=j.y}),e.fixedNodeConstraint.forEach(function(t){l[h.get(t.nodeId)]=t.position.x,d[h.get(t.nodeId)]=t.position.y})}if(e.alignmentConstraint){if(e.alignmentConstraint.vertical)for(var $=e.alignmentConstraint.vertical,q=function(t){var e=new Set;$[t].forEach(function(t){e.add(t)});var i=new Set([].concat(n(e)).filter(function(t){return I.has(t)})),r=void 0;r=i.size>0?l[h.get(i.values().next().value)]:p(e).x,e.forEach(function(t){I.has(t)||(l[h.get(t)]=r)})},K=0;K<$.length;K++)q(K);if(e.alignmentConstraint.horizontal)for(var Z=e.alignmentConstraint.horizontal,Q=function(t){var e=new Set;Z[t].forEach(function(t){e.add(t)});var i=new Set([].concat(n(e)).filter(function(t){return I.has(t)})),r=void 0;r=i.size>0?d[h.get(i.values().next().value)]:p(e).y,e.forEach(function(t){I.has(t)||(d[h.get(t)]=r)})},J=0;J{e.exports=t}},i={},n=function t(n){var r=i[n];if(void 0!==r)return r.exports;var o=i[n]={exports:{}};return e[n](o,o.exports,t),o.exports}(45);return n})()},t.exports=n(i(6679))},2753:(t,e,i)=>{"use strict";i.d(e,{m:()=>r});var n=i(1750),r=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},6679:function(t){var e;e=function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=28)}([function(t,e,i){"use strict";function n(){}n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,i){"use strict";var n=i(2),r=i(8),o=i(9);function s(t,e,i){n.call(this,i),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=i,this.bendpoints=[],this.source=t,this.target=e}for(var a in s.prototype=Object.create(n.prototype),n)s[a]=n[a];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(t,e){for(var i=this.getOtherEnd(t),n=e.getGraphManager().getRoot();;){if(i.getOwner()==e)return i;if(i.getOwner()==n)break;i=i.getOwner().getParent()}return null},s.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=r.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],Math.abs(this.lengthX)<1&&(this.lengthX=o.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=o.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,i){"use strict";t.exports=function(t){this.vGraphObject=t}},function(t,e,i){"use strict";var n=i(2),r=i(10),o=i(13),s=i(0),a=i(16),h=i(5);function l(t,e,i,s){null==i&&null==s&&(s=e),n.call(this,s),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=r.MIN_VALUE,this.inclusionTreeDepth=r.MAX_VALUE,this.vGraphObject=s,this.edges=[],this.graphManager=t,this.rect=null!=i&&null!=e?new o(e.x,e.y,i.width,i.height):new o}for(var d in l.prototype=Object.create(n.prototype),n)l[d]=n[d];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(t){this.rect.width=t},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(t){this.rect.height=t},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new h(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new h(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},l.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},l.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},l.prototype.getEdgeListToNode=function(t){var e=[],i=this;return i.edges.forEach(function(n){if(n.target==t){if(n.source!=i)throw"Incorrect edge source!";e.push(n)}}),e},l.prototype.getEdgesBetween=function(t){var e=[],i=this;return i.edges.forEach(function(n){if(n.source!=i&&n.target!=i)throw"Incorrect edge source and/or target";n.target!=t&&n.source!=t||e.push(n)}),e},l.prototype.getNeighborsList=function(){var t=new Set,e=this;return e.edges.forEach(function(i){if(i.source==e)t.add(i.target);else{if(i.target!=e)throw"Incorrect incidency!";t.add(i.source)}}),t},l.prototype.withChildren=function(){var t=new Set;if(t.add(this),null!=this.child)for(var e=this.child.getNodes(),i=0;ie?(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)):"right"==this.labelPosHorizontal&&this.setWidth(e+this.labelWidth)),this.labelHeight&&("top"==this.labelPosVertical?(this.rect.y-=this.labelHeight,this.setHeight(i+this.labelHeight)):"center"==this.labelPosVertical&&this.labelHeight>i?(this.rect.y-=(this.labelHeight-i)/2,this.setHeight(this.labelHeight)):"bottom"==this.labelPosVertical&&this.setHeight(i+this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==r.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>s.WORLD_BOUNDARY?e=s.WORLD_BOUNDARY:e<-s.WORLD_BOUNDARY&&(e=-s.WORLD_BOUNDARY);var i=this.rect.y;i>s.WORLD_BOUNDARY?i=s.WORLD_BOUNDARY:i<-s.WORLD_BOUNDARY&&(i=-s.WORLD_BOUNDARY);var n=new h(e,i),r=t.inverseTransformPoint(n);this.setLocation(r.x,r.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,i){"use strict";var n=i(0);function r(){}for(var o in n)r[o]=n[o];r.MAX_ITERATIONS=2500,r.DEFAULT_EDGE_LENGTH=50,r.DEFAULT_SPRING_STRENGTH=.45,r.DEFAULT_REPULSION_STRENGTH=4500,r.DEFAULT_GRAVITY_STRENGTH=.4,r.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,r.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,r.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,r.COOLING_ADAPTATION_FACTOR=.33,r.ADAPTATION_LOWER_NODE_LIMIT=1e3,r.ADAPTATION_UPPER_NODE_LIMIT=5e3,r.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,r.MAX_NODE_DISPLACEMENT=3*r.MAX_NODE_DISPLACEMENT_INCREMENTAL,r.MIN_REPULSION_DIST=r.DEFAULT_EDGE_LENGTH/10,r.CONVERGENCE_CHECK_PERIOD=100,r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,r.MIN_EDGE_LENGTH=1,r.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=r},function(t,e,i){"use strict";function n(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(t){this.x=t},n.prototype.setY=function(t){this.y=t},n.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=n},function(t,e,i){"use strict";var n=i(2),r=i(10),o=i(0),s=i(7),a=i(3),h=i(1),l=i(13),d=i(12),c=i(11);function g(t,e,i){n.call(this,i),this.estimatedSize=r.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof s?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var u in g.prototype=Object.create(n.prototype),n)g[u]=n[u];g.prototype.getNodes=function(){return this.nodes},g.prototype.getEdges=function(){return this.edges},g.prototype.getGraphManager=function(){return this.graphManager},g.prototype.getParent=function(){return this.parent},g.prototype.getLeft=function(){return this.left},g.prototype.getRight=function(){return this.right},g.prototype.getTop=function(){return this.top},g.prototype.getBottom=function(){return this.bottom},g.prototype.isConnected=function(){return this.isConnected},g.prototype.add=function(t,e,i){if(null==e&&null==i){var n=t;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(n)>-1)throw"Node already in graph!";return n.owner=this,this.getNodes().push(n),n}var r=t;if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(i)>-1))throw"Source or target not in graph!";if(e.owner!=i.owner||e.owner!=this)throw"Both owners must be this graph!";return e.owner!=i.owner?null:(r.source=e,r.target=i,r.isInterGraph=!1,this.getEdges().push(r),e.edges.push(r),i!=e&&i.edges.push(r),r)},g.prototype.remove=function(t){var e=t;if(t instanceof a){if(null==e)throw"Node is null!";if(null==e.owner||e.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var i=e.edges.slice(),n=i.length,r=0;r-1&&d>-1))throw"Source and/or target doesn't know this edge!";if(o.source.edges.splice(l,1),o.target!=o.source&&o.target.edges.splice(d,1),-1==(s=o.source.owner.getEdges().indexOf(o)))throw"Not in owner's edge list!";o.source.owner.getEdges().splice(s,1)}},g.prototype.updateLeftTop=function(){for(var t,e,i,n=r.MAX_VALUE,o=r.MAX_VALUE,s=this.getNodes(),a=s.length,h=0;h(t=l.getTop())&&(n=t),o>(e=l.getLeft())&&(o=e)}return n==r.MAX_VALUE?null:(i=null!=s[0].getParent().paddingLeft?s[0].getParent().paddingLeft:this.margin,this.left=o-i,this.top=n-i,new d(this.left,this.top))},g.prototype.updateBounds=function(t){for(var e,i,n,o,s,a=r.MAX_VALUE,h=-r.MAX_VALUE,d=r.MAX_VALUE,c=-r.MAX_VALUE,g=this.nodes,u=g.length,f=0;f(e=p.getLeft())&&(a=e),h<(i=p.getRight())&&(h=i),d>(n=p.getTop())&&(d=n),c<(o=p.getBottom())&&(c=o)}var y=new l(a,d,h-a,c-d);a==r.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),s=null!=g[0].getParent().paddingLeft?g[0].getParent().paddingLeft:this.margin,this.left=y.x-s,this.right=y.x+y.width+s,this.top=y.y-s,this.bottom=y.y+y.height+s},g.calculateBounds=function(t){for(var e,i,n,o,s=r.MAX_VALUE,a=-r.MAX_VALUE,h=r.MAX_VALUE,d=-r.MAX_VALUE,c=t.length,g=0;g(e=u.getLeft())&&(s=e),a<(i=u.getRight())&&(a=i),h>(n=u.getTop())&&(h=n),d<(o=u.getBottom())&&(d=o)}return new l(s,h,a-s,d-h)},g.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},g.prototype.getEstimatedSize=function(){if(this.estimatedSize==r.MIN_VALUE)throw"assert failed";return this.estimatedSize},g.prototype.calcEstimatedSize=function(){for(var t=0,e=this.nodes,i=e.length,n=0;n=this.nodes.length){var h=0;r.forEach(function(e){e.owner==t&&h++}),h==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},t.exports=g},function(t,e,i){"use strict";var n,r=i(1);function o(t){n=i(6),this.layout=t,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),i=this.add(t,e);return this.setRootGraph(i),this.rootGraph},o.prototype.add=function(t,e,i,n,r){if(null==i&&null==n&&null==r){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}r=i,i=t;var o=(n=e).getOwner(),s=r.getOwner();if(null==o||o.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==s||s.getGraphManager()!=this)throw"Target not in this graph mgr!";if(o==s)return i.isInterGraph=!1,o.add(i,n,r);if(i.isInterGraph=!0,i.source=n,i.target=r,this.edges.indexOf(i)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(i),null==i.source||null==i.target)throw"Edge source and/or target is null!";if(-1!=i.source.edges.indexOf(i)||-1!=i.target.edges.indexOf(i))throw"Edge already in source and/or target incidency list!";return i.source.edges.push(i),i.target.edges.push(i),i},o.prototype.remove=function(t){if(t instanceof n){var e=t;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(e!=this.rootGraph&&(null==e.parent||e.parent.graphManager!=this))throw"Invalid parent node!";for(var i,o=[],s=(o=o.concat(e.getEdges())).length,a=0;a=e.getRight()?i[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(i[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?i[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(i[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(o=1);var s=o*i[0],a=i[1]/o;i[0]s)return i[0]=n,i[1]=h,i[2]=o,i[3]=E,!1;if(ro)return i[0]=a,i[1]=r,i[2]=v,i[3]=s,!1;if(no?(i[0]=d,i[1]=c,w=!0):(i[0]=l,i[1]=h,w=!0):I===C&&(n>o?(i[0]=a,i[1]=h,w=!0):(i[0]=g,i[1]=c,w=!0)),-_===C?o>n?(i[2]=m,i[3]=E,L=!0):(i[2]=v,i[3]=y,L=!0):_===C&&(o>n?(i[2]=p,i[3]=y,L=!0):(i[2]=N,i[3]=E,L=!0)),w&&L)return!1;if(n>o?r>s?(M=this.getCardinalDirection(I,C,4),x=this.getCardinalDirection(_,C,2)):(M=this.getCardinalDirection(-I,C,3),x=this.getCardinalDirection(-_,C,1)):r>s?(M=this.getCardinalDirection(-I,C,1),x=this.getCardinalDirection(-_,C,3)):(M=this.getCardinalDirection(I,C,2),x=this.getCardinalDirection(_,C,4)),!w)switch(M){case 1:D=h,O=n+-f/C,i[0]=O,i[1]=D;break;case 2:O=g,D=r+u*C,i[0]=O,i[1]=D;break;case 3:D=c,O=n+f/C,i[0]=O,i[1]=D;break;case 4:O=d,D=r+-u*C,i[0]=O,i[1]=D}if(!L)switch(x){case 1:b=y,R=o+-A/C,i[2]=R,i[3]=b;break;case 2:R=N,b=s+T*C,i[2]=R,i[3]=b;break;case 3:b=E,R=o+A/C,i[2]=R,i[3]=b;break;case 4:R=m,b=s+-T*C,i[2]=R,i[3]=b}}return!1},r.getCardinalDirection=function(t,e,i){return t>e?i:1+i%4},r.getIntersection=function(t,e,i,r){if(null==r)return this.getIntersection2(t,e,i);var o,s,a,h,l,d,c,g=t.x,u=t.y,f=e.x,p=e.y,y=i.x,v=i.y,m=r.x,E=r.y;return 0===(c=(o=p-u)*(h=y-m)-(s=E-v)*(a=g-f))?null:new n((a*(d=m*v-y*E)-h*(l=f*u-g*p))/c,(s*l-o*d)/c)},r.angleOfVector=function(t,e,i,n){var r=void 0;return t!==i?(r=Math.atan((n-e)/(i-t)),i=0){var d=(-h+Math.sqrt(h*h-4*a*l))/(2*a),c=(-h-Math.sqrt(h*h-4*a*l))/(2*a);return d>=0&&d<=1?[d]:c>=0&&c<=1?[c]:null}return null},r.HALF_PI=.5*Math.PI,r.ONE_AND_HALF_PI=1.5*Math.PI,r.TWO_PI=2*Math.PI,r.THREE_PI=3*Math.PI,t.exports=r},function(t,e,i){"use strict";function n(){}n.sign=function(t){return t>0?1:t<0?-1:0},n.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},n.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=n},function(t,e,i){"use strict";function n(){}n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,i){"use strict";var n=function(){function t(t,e){for(var i=0;i0&&e;){for(a.push(l[0]);a.length>0&&e;){var d=a[0];a.splice(0,1),s.add(d);var c=d.getEdges();for(o=0;o-1&&l.splice(p,1)}s=new Set,h=new Map}else t=[]}return t},g.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],i=t.source,n=this.graphManager.calcLowestCommonAncestor(t.source,t.target),r=0;r0){for(var r=this.edgeToDummyNodes.get(i),o=0;o=0&&e.splice(c,1),d.getNeighborsList().forEach(function(t){if(i.indexOf(t)<0){var e=n.get(t)-1;1==e&&h.push(t),n.set(t,e)}})}i=i.concat(h),1!=e.length&&2!=e.length||(r=!0,o=e[0])}return o},g.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=g},function(t,e,i){"use strict";function n(){}n.seed=1,n.x=0,n.nextDouble=function(){return n.x=1e4*Math.sin(n.seed++),n.x-Math.floor(n.x)},t.exports=n},function(t,e,i){"use strict";var n=i(5);function r(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}r.prototype.getWorldOrgX=function(){return this.lworldOrgX},r.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},r.prototype.getWorldOrgY=function(){return this.lworldOrgY},r.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},r.prototype.getWorldExtX=function(){return this.lworldExtX},r.prototype.setWorldExtX=function(t){this.lworldExtX=t},r.prototype.getWorldExtY=function(){return this.lworldExtY},r.prototype.setWorldExtY=function(t){this.lworldExtY=t},r.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},r.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},r.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},r.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},r.prototype.getDeviceExtX=function(){return this.ldeviceExtX},r.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},r.prototype.getDeviceExtY=function(){return this.ldeviceExtY},r.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},r.prototype.transformX=function(t){var e=0,i=this.lworldExtX;return 0!=i&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/i),e},r.prototype.transformY=function(t){var e=0,i=this.lworldExtY;return 0!=i&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/i),e},r.prototype.inverseTransformX=function(t){var e=0,i=this.ldeviceExtX;return 0!=i&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/i),e},r.prototype.inverseTransformY=function(t){var e=0,i=this.ldeviceExtY;return 0!=i&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/i),e},r.prototype.inverseTransformPoint=function(t){return new n(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=r},function(t,e,i){"use strict";var n=i(15),r=i(4),o=i(0),s=i(8),a=i(9);function h(){n.call(this),this.useSmartIdealEdgeLengthCalculation=r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=r.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=r.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=r.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=r.MAX_ITERATIONS}for(var l in h.prototype=Object.create(n.prototype),n)h[l]=n[l];h.prototype.initParameters=function(){n.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var t,e,i,n,s,a,h,l=this.getGraphManager().getAllEdges(),d=0;dr.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*r.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-r.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>r.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(r.COOLING_ADAPTATION_FACTOR,1-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*(1-r.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),i=0;i0&&void 0!==arguments[0])||arguments[0],a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&s&&this.updateGrid(),o=new Set,t=0;t(h=e.getEstimatedSize()*this.gravityRangeFactor)||a>h)&&(t.gravitationForceX=-this.gravityConstant*r,t.gravitationForceY=-this.gravityConstant*o):(s>(h=e.getEstimatedSize()*this.compoundGravityRangeFactor)||a>h)&&(t.gravitationForceX=-this.gravityConstant*r*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant)},h.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=a.length||l>=a[0].length))for(var d=0;dt}}]),t}();t.exports=o},function(t,e,i){"use strict";function n(){}n.svd=function(t){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=t.length,this.n=t[0].length;var e=Math.min(this.m,this.n);this.s=function(t){for(var e=[];t-- >0;)e.push(0);return e}(Math.min(this.m+1,this.n)),this.U=function t(e){if(0==e.length)return 0;for(var i=[],n=0;n0;)e.push(0);return e}(this.n),r=function(t){for(var e=[];t-- >0;)e.push(0);return e}(this.m),o=Math.min(this.m-1,this.n),s=Math.max(0,Math.min(this.n-2,this.m)),a=0;a=0;C--)if(0!==this.s[C]){for(var M=C+1;M=0;F--){if(function(t,e){return t&&e}(F0;){var B=void 0,V=void 0;for(B=L-2;B>=-1&&-1!==B;B--)if(Math.abs(i[B])<=z+X*(Math.abs(this.s[B])+Math.abs(this.s[B+1]))){i[B]=0;break}if(B===L-2)V=4;else{var W=void 0;for(W=L-1;W>=B&&W!==B;W--){var j=(W!==L?Math.abs(i[W]):0)+(W!==B+1?Math.abs(i[W-1]):0);if(Math.abs(this.s[W])<=z+X*j){this.s[W]=0;break}}W===B?V=3:W===L-1?V=1:(V=2,B=W)}switch(B++,V){case 1:var $=i[L-2];i[L-2]=0;for(var q=L-2;q>=B;q--){var K=n.hypot(this.s[q],$),Z=this.s[q]/K,Q=$/K;this.s[q]=K,q!==B&&($=-Q*i[q-1],i[q-1]=Z*i[q-1]);for(var J=0;J=this.s[B+1]);){var Lt=this.s[B];if(this.s[B]=this.s[B+1],this.s[B+1]=Lt,BMath.abs(e)?(i=e/t,i=Math.abs(t)*Math.sqrt(1+i*i)):0!=e?(i=t/e,i=Math.abs(e)*Math.sqrt(1+i*i)):i=0,i},t.exports=n},function(t,e,i){"use strict";var n=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.sequence1=e,this.sequence2=i,this.match_score=n,this.mismatch_penalty=r,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=i.length+1,this.grid=new Array(this.iMax);for(var s=0;s=0;i--){var n=this.listeners[i];n.event===t&&n.callback===e&&this.listeners.splice(i,1)}},r.emit=function(t,e){for(var i=0;i{"use strict";var e={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n{var n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var i=[],n=!0,r=!1,o=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(i.push(s.value),!e||i.length!==e);n=!0);}catch(h){r=!0,o=h}finally{try{!n&&a.return&&a.return()}finally{if(r)throw o}}return i}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=i(140).layoutBase.LinkedList,o={getTopMostNodes:function(t){for(var e={},i=0;i0&&l.merge(t)});for(var d=0;d1){l=a[0],d=l.connectedEdges().length,a.forEach(function(t){t.connectedEdges().length0&&n.set("dummy"+(n.size+1),u),f},relocateComponent:function(t,e,i){if(!i.fixedNodeConstraint){var r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;if("draft"==i.quality){var h=!0,l=!1,d=void 0;try{for(var c,g=e.nodeIndexes[Symbol.iterator]();!(h=(c=g.next()).done);h=!0){var u=c.value,f=n(u,2),p=f[0],y=f[1],v=i.cy.getElementById(p);if(v){var m=v.boundingBox(),E=e.xCoords[y]-m.w/2,N=e.xCoords[y]+m.w/2,T=e.yCoords[y]-m.h/2,A=e.yCoords[y]+m.h/2;Eo&&(o=N),Ta&&(a=A)}}}catch(C){l=!0,d=C}finally{try{!h&&g.return&&g.return()}finally{if(l)throw d}}var w=t.x-(o+r)/2,L=t.y-(a+s)/2;e.xCoords=e.xCoords.map(function(t){return t+w}),e.yCoords=e.yCoords.map(function(t){return t+L})}else{Object.keys(e).forEach(function(t){var i=e[t],n=i.getRect().x,h=i.getRect().x+i.getRect().width,l=i.getRect().y,d=i.getRect().y+i.getRect().height;no&&(o=h),la&&(a=d)});var I=t.x-(o+r)/2,_=t.y-(a+s)/2;Object.keys(e).forEach(function(t){var i=e[t];i.setCenter(i.getCenterX()+I,i.getCenterY()+_)})}}},calcBoundingBox:function(t,e,i,n){for(var r=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,s=Number.MAX_SAFE_INTEGER,a=Number.MIN_SAFE_INTEGER,h=void 0,l=void 0,d=void 0,c=void 0,g=t.descendants().not(":parent"),u=g.length,f=0;f(h=e[n.get(p.id())]-p.width()/2)&&(r=h),o<(l=e[n.get(p.id())]+p.width()/2)&&(o=l),s>(d=i[n.get(p.id())]-p.height()/2)&&(s=d),a<(c=i[n.get(p.id())]+p.height()/2)&&(a=c)}var y={};return y.topLeftX=r,y.topLeftY=s,y.width=o-r,y.height=a-s,y},calcParentsWithoutChildren:function(t,e){var i=t.collection();return e.nodes(":parent").forEach(function(t){var e=!1;t.children().forEach(function(t){"none"!=t.css("display")&&(e=!0)}),e||i.merge(t)}),i}};t.exports=o},816:(t,e,i)=>{var n=i(548),r=i(140).CoSELayout,o=i(140).CoSENode,s=i(140).layoutBase.PointD,a=i(140).layoutBase.DimensionD,h=i(140).layoutBase.LayoutConstants,l=i(140).layoutBase.FDLayoutConstants,d=i(140).CoSEConstants;t.exports={coseLayout:function(t,e){var i=t.cy,c=t.eles,g=c.nodes(),u=c.edges(),f=void 0,p=void 0,y=void 0,v={};t.randomize&&(f=e.nodeIndexes,p=e.xCoords,y=e.yCoords);var m=function(t){return"function"==typeof t},E=function(t,e){return m(t)?t(e):t},N=n.calcParentsWithoutChildren(i,c);null!=t.nestingFactor&&(d.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(d.DEFAULT_GRAVITY_STRENGTH=l.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(d.MAX_ITERATIONS=l.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(d.DEFAULT_GRAVITY_RANGE_FACTOR=l.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(d.DEFAULT_COMPOUND_GRAVITY_STRENGTH=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(d.DEFAULT_COOLING_FACTOR_INCREMENTAL=l.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),null!=t.tilingCompareBy&&(d.TILING_COMPARE_BY=t.tilingCompareBy),"proof"==t.quality?h.QUALITY=2:h.QUALITY=0,d.NODE_DIMENSIONS_INCLUDE_LABELS=l.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!t.randomize,d.ANIMATE=l.ANIMATE=h.ANIMATE=t.animate,d.TILE=t.tile,d.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,d.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!0,d.PURE_INCREMENTAL=!t.randomize,h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=t.uniformNodeDimensions,"transformed"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!1),"enforced"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!1),"cose"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!0),"all"==t.step&&(t.randomize?d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!0),t.fixedNodeConstraint||t.alignmentConstraint||t.relativePlacementConstraint?d.TREE_REDUCTION_ON_INCREMENTAL=!1:d.TREE_REDUCTION_ON_INCREMENTAL=!0;var T=new r,A=T.newGraphManager();return function t(e,i,r,h){for(var l=i.length,d=0;d0&&t(r.getGraphManager().add(r.newGraph(),u),g,r,h)}}(A.addRoot(),n.getTopMostNodes(g),T,t),function(e,i,n){for(var r=0,o=0,s=0;s0?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=r/o:m(t.idealEdgeLength)?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=50:d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=t.idealEdgeLength,d.MIN_REPULSION_DIST=l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,d.DEFAULT_RADIAL_SEPARATION=l.DEFAULT_EDGE_LENGTH)}(T,A,u),function(t,e){e.fixedNodeConstraint&&(t.constraints.fixedNodeConstraint=e.fixedNodeConstraint),e.alignmentConstraint&&(t.constraints.alignmentConstraint=e.alignmentConstraint),e.relativePlacementConstraint&&(t.constraints.relativePlacementConstraint=e.relativePlacementConstraint)}(T,t),T.runLayout(),v}}},212:(t,e,i)=>{var n=function(){function t(t,e){for(var i=0;i0)if(c){var g=o.getTopMostNodes(t.eles.nodes());if((h=o.connectComponents(e,t.eles,g)).forEach(function(t){var e=t.boundingBox();l.push({x:e.x1+e.w/2,y:e.y1+e.h/2})}),t.randomize&&h.forEach(function(e){t.eles=e,n.push(s(t))}),"default"==t.quality||"proof"==t.quality){var u=e.collection();if(t.tile){var f=new Map,p=0,y={nodeIndexes:f,xCoords:[],yCoords:[]},v=[];if(h.forEach(function(t,e){0==t.edges().length&&(t.nodes().forEach(function(e,i){u.merge(t.nodes()[i]),e.isParent()||(y.nodeIndexes.set(t.nodes()[i].id(),p++),y.xCoords.push(t.nodes()[0].position().x),y.yCoords.push(t.nodes()[0].position().y))}),v.push(e))}),u.length>1){var m=u.boundingBox();l.push({x:m.x1+m.w/2,y:m.y1+m.h/2}),h.push(u),n.push(y);for(var E=v.length-1;E>=0;E--)h.splice(v[E],1),n.splice(v[E],1),l.splice(v[E],1)}}h.forEach(function(e,i){t.eles=e,r.push(a(t,n[i])),o.relocateComponent(l[i],r[i],t)})}else h.forEach(function(e,i){o.relocateComponent(l[i],n[i],t)});var N=new Set;if(h.length>1){var T=[],A=i.filter(function(t){return"none"==t.css("display")});h.forEach(function(e,i){var s=void 0;if("draft"==t.quality&&(s=n[i].nodeIndexes),e.nodes().not(A).length>0){var a={edges:[],nodes:[]},h=void 0;e.nodes().not(A).forEach(function(e){if("draft"==t.quality)if(e.isParent()){var l=o.calcBoundingBox(e,n[i].xCoords,n[i].yCoords,s);a.nodes.push({x:l.topLeftX,y:l.topLeftY,width:l.width,height:l.height})}else h=s.get(e.id()),a.nodes.push({x:n[i].xCoords[h]-e.boundingbox().w/2,y:n[i].yCoords[h]-e.boundingbox().h/2,width:e.boundingbox().w,height:e.boundingbox().h});else r[i][e.id()]&&a.nodes.push({x:r[i][e.id()].getLeft(),y:r[i][e.id()].getTop(),width:r[i][e.id()].getWidth(),height:r[i][e.id()].getHeight()})}),e.edges().forEach(function(e){var h=e.source(),l=e.target();if("none"!=h.css("display")&&"none"!=l.css("display"))if("draft"==t.quality){var d=s.get(h.id()),c=s.get(l.id()),g=[],u=[];if(h.isParent()){var f=o.calcBoundingBox(h,n[i].xCoords,n[i].yCoords,s);g.push(f.topLeftX+f.width/2),g.push(f.topLeftY+f.height/2)}else g.push(n[i].xCoords[d]),g.push(n[i].yCoords[d]);if(l.isParent()){var p=o.calcBoundingBox(l,n[i].xCoords,n[i].yCoords,s);u.push(p.topLeftX+p.width/2),u.push(p.topLeftY+p.height/2)}else u.push(n[i].xCoords[c]),u.push(n[i].yCoords[c]);a.edges.push({startX:g[0],startY:g[1],endX:u[0],endY:u[1]})}else r[i][h.id()]&&r[i][l.id()]&&a.edges.push({startX:r[i][h.id()].getCenterX(),startY:r[i][h.id()].getCenterY(),endX:r[i][l.id()].getCenterX(),endY:r[i][l.id()].getCenterY()})}),a.nodes.length>0&&(T.push(a),N.add(i))}});var w=d.packComponents(T,t.randomize).shifts;if("draft"==t.quality)n.forEach(function(t,e){var i=t.xCoords.map(function(t){return t+w[e].dx}),n=t.yCoords.map(function(t){return t+w[e].dy});t.xCoords=i,t.yCoords=n});else{var L=0;N.forEach(function(t){Object.keys(r[t]).forEach(function(e){var i=r[t][e];i.setCenter(i.getCenterX()+w[L].dx,i.getCenterY()+w[L].dy)}),L++})}}}else{var I=t.eles.boundingBox();if(l.push({x:I.x1+I.w/2,y:I.y1+I.h/2}),t.randomize){var _=s(t);n.push(_)}"default"==t.quality||"proof"==t.quality?(r.push(a(t,n[0])),o.relocateComponent(l[0],r[0],t)):o.relocateComponent(l[0],n[0],t)}var C=function(e,i){if("default"==t.quality||"proof"==t.quality){"number"==typeof e&&(e=i);var o=void 0,s=void 0,a=e.data("id");return r.forEach(function(t){a in t&&(o={x:t[a].getRect().getCenterX(),y:t[a].getRect().getCenterY()},s=t[a])}),t.nodeDimensionsIncludeLabels&&(s.labelWidth&&("left"==s.labelPosHorizontal?o.x+=s.labelWidth/2:"right"==s.labelPosHorizontal&&(o.x-=s.labelWidth/2)),s.labelHeight&&("top"==s.labelPosVertical?o.y+=s.labelHeight/2:"bottom"==s.labelPosVertical&&(o.y-=s.labelHeight/2))),null==o&&(o={x:e.position("x"),y:e.position("y")}),{x:o.x,y:o.y}}var h=void 0;return n.forEach(function(t){var i=t.nodeIndexes.get(e.id());null!=i&&(h={x:t.xCoords[i],y:t.yCoords[i]})}),null==h&&(h={x:e.position("x"),y:e.position("y")}),{x:h.x,y:h.y}};if("default"==t.quality||"proof"==t.quality||t.randomize){var M=o.calcParentsWithoutChildren(e,i),x=i.filter(function(t){return"none"==t.css("display")});t.eles=i.not(x),i.nodes().not(":parent").not(x).layoutPositions(this,t,C),M.length>0&&M.forEach(function(t){t.position(C(t))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),t}();t.exports=l},657:(t,e,i)=>{var n=i(548),r=i(140).layoutBase.Matrix,o=i(140).layoutBase.SVD;t.exports={spectralLayout:function(t){var e=t.cy,i=t.eles,s=i.nodes(),a=i.nodes(":parent"),h=new Map,l=new Map,d=new Map,c=[],g=[],u=[],f=[],p=[],y=[],v=[],m=[],E=void 0,N=1e8,T=1e-9,A=t.piTol,w=t.samplingType,L=t.nodeSeparation,I=void 0,_=function(t,e,i){for(var n=[],r=0,o=0,s=0,a=void 0,h=[],d=0,g=1,u=0;u=r;){s=n[r++];for(var f=c[s],v=0;vd&&(d=p[T],g=T)}return g};n.connectComponents(e,i,n.getTopMostNodes(s),h),a.forEach(function(t){n.connectComponents(e,i,n.getTopMostNodes(t.descendants().intersection(i)),h)});for(var C=0,M=0;M0&&(n.isParent()?c[e].push(d.get(n.id())):c[e].push(n.id()))})});var S=function(t){var i=l.get(t),n=void 0;h.get(t).forEach(function(r){n=e.getElementById(r).isParent()?d.get(r):r,c[i].push(n),c[l.get(n)].push(t)})},P=!0,U=!1,Y=void 0;try{for(var k,H=h.keys()[Symbol.iterator]();!(P=(k=H.next()).done);P=!0)S(k.value)}catch(K){U=!0,Y=K}finally{try{!P&&H.return&&H.return()}finally{if(U)throw Y}}var X=void 0;if((E=l.size)>2){I=E=1)break;l=h}for(var f=0;f=1)break;l=h}for(var v=0;v{var n=i(212),r=function(t){t&&t("layout","fcose",n)};"undefined"!=typeof cytoscape&&r(cytoscape),t.exports=r},140:e=>{e.exports=t}},i={},n=function t(n){var r=i[n];if(void 0!==r)return r.exports;var o=i[n]={exports:{}};return e[n](o,o.exports,t),o.exports}(579);return n})()},t.exports=n(i(1709))}}]);
\ No newline at end of file
diff --git a/docs/assets/js/7835.0ba298a0.js b/docs/assets/js/7835.0ba298a0.js
deleted file mode 100644
index a5368ad..0000000
--- a/docs/assets/js/7835.0ba298a0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[7835],{7835:(t,e,s)=>{s.d(e,{diagram:()=>m});var i=s(4540),n=s(8833),r=s(5020),a=(s(1789),s(70),s(6906),s(8823),s(5683),s(8506),s(6792)),c=s(1750),o=s(451),l=s(5937),h=s(5582),u=function(){var t=(0,c.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],s=[1,10],i=[1,11],n=[1,12],r=[1,13],a=[1,20],o=[1,21],l=[1,22],h=[1,23],u=[1,24],y=[1,19],d=[1,25],p=[1,26],_=[1,18],g=[1,33],b=[1,34],m=[1,35],f=[1,36],E=[1,37],k=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],O=[1,42],S=[1,43],T=[1,52],R=[40,50,68,69],A=[1,63],N=[1,61],I=[1,58],C=[1,62],x=[1,64],D=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],v=[63,64,65,66,67],$=[1,81],K=[1,80],w=[1,78],L=[1,79],M=[6,10,42,47],F=[6,10,13,41,42,47,48,49],B=[1,89],Y=[1,88],P=[1,87],z=[19,56],G=[1,98],U=[1,97],Z=[19,56,58,60],j={trace:(0,c.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:(0,c.K2)(function(t,e,s,i,n,r,a){var c=r.length-1;switch(n){case 1:break;case 2:case 6:case 7:this.$=[];break;case 3:r[c-1].push(r[c]),this.$=r[c-1];break;case 4:case 5:case 55:case 78:case 62:case 63:case 66:this.$=r[c];break;case 8:i.addEntity(r[c-4]),i.addEntity(r[c-2]),i.addRelationship(r[c-4],r[c],r[c-2],r[c-3]);break;case 9:i.addEntity(r[c-8]),i.addEntity(r[c-4]),i.addRelationship(r[c-8],r[c],r[c-4],r[c-5]),i.setClass([r[c-8]],r[c-6]),i.setClass([r[c-4]],r[c-2]);break;case 10:i.addEntity(r[c-6]),i.addEntity(r[c-2]),i.addRelationship(r[c-6],r[c],r[c-2],r[c-3]),i.setClass([r[c-6]],r[c-4]);break;case 11:i.addEntity(r[c-6]),i.addEntity(r[c-4]),i.addRelationship(r[c-6],r[c],r[c-4],r[c-5]),i.setClass([r[c-4]],r[c-2]);break;case 12:i.addEntity(r[c-3]),i.addAttributes(r[c-3],r[c-1]);break;case 13:i.addEntity(r[c-5]),i.addAttributes(r[c-5],r[c-1]),i.setClass([r[c-5]],r[c-3]);break;case 14:i.addEntity(r[c-2]);break;case 15:i.addEntity(r[c-4]),i.setClass([r[c-4]],r[c-2]);break;case 16:i.addEntity(r[c]);break;case 17:i.addEntity(r[c-2]),i.setClass([r[c-2]],r[c]);break;case 18:i.addEntity(r[c-6],r[c-4]),i.addAttributes(r[c-6],r[c-1]);break;case 19:i.addEntity(r[c-8],r[c-6]),i.addAttributes(r[c-8],r[c-1]),i.setClass([r[c-8]],r[c-3]);break;case 20:i.addEntity(r[c-5],r[c-3]);break;case 21:i.addEntity(r[c-7],r[c-5]),i.setClass([r[c-7]],r[c-2]);break;case 22:i.addEntity(r[c-3],r[c-1]);break;case 23:i.addEntity(r[c-5],r[c-3]),i.setClass([r[c-5]],r[c]);break;case 24:case 25:this.$=r[c].trim(),i.setAccTitle(this.$);break;case 26:case 27:this.$=r[c].trim(),i.setAccDescription(this.$);break;case 32:i.setDirection("TB");break;case 33:i.setDirection("BT");break;case 34:i.setDirection("RL");break;case 35:i.setDirection("LR");break;case 36:this.$=r[c-3],i.addClass(r[c-2],r[c-1]);break;case 37:case 38:case 56:case 64:case 43:this.$=[r[c]];break;case 39:case 40:this.$=r[c-2].concat([r[c]]);break;case 41:this.$=r[c-2],i.setClass(r[c-1],r[c]);break;case 42:this.$=r[c-3],i.addCssStyles(r[c-2],r[c-1]);break;case 44:case 65:r[c-2].push(r[c]),this.$=r[c-2];break;case 46:this.$=r[c-1]+r[c];break;case 54:case 76:case 77:case 67:this.$=r[c].replace(/"/g,"");break;case 57:r[c].push(r[c-1]),this.$=r[c];break;case 58:this.$={type:r[c-1],name:r[c]};break;case 59:this.$={type:r[c-2],name:r[c-1],keys:r[c]};break;case 60:this.$={type:r[c-2],name:r[c-1],comment:r[c]};break;case 61:this.$={type:r[c-3],name:r[c-2],keys:r[c-1],comment:r[c]};break;case 68:this.$={cardA:r[c],relType:r[c-1],cardB:r[c-2]};break;case 69:this.$=i.Cardinality.ZERO_OR_ONE;break;case 70:this.$=i.Cardinality.ZERO_OR_MORE;break;case 71:this.$=i.Cardinality.ONE_OR_MORE;break;case 72:this.$=i.Cardinality.ONLY_ONE;break;case 73:this.$=i.Cardinality.MD_PARENT;break;case 74:this.$=i.Identification.NON_IDENTIFYING;break;case 75:this.$=i.Identification.IDENTIFYING}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:s,24:i,26:n,28:r,29:14,30:15,31:16,32:17,33:a,34:o,35:l,36:h,37:u,40:y,43:d,44:p,50:_},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:27,11:9,22:s,24:i,26:n,28:r,29:14,30:15,31:16,32:17,33:a,34:o,35:l,36:h,37:u,40:y,43:d,44:p,50:_},t(e,[2,5]),t(e,[2,6]),t(e,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:g,64:b,65:m,66:f,67:E}),{23:[1,38]},{25:[1,39]},{27:[1,40]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),t(e,[2,30]),t(e,[2,31]),t(k,[2,54]),t(k,[2,55]),t(e,[2,32]),t(e,[2,33]),t(e,[2,34]),t(e,[2,35]),{16:41,40:O,41:S},{16:44,40:O,41:S},{16:45,40:O,41:S},t(e,[2,4]),{11:46,40:y,50:_},{16:47,40:O,41:S},{18:48,19:[1,49],51:50,52:51,56:T},{11:53,40:y,50:_},{62:54,68:[1,55],69:[1,56]},t(R,[2,69]),t(R,[2,70]),t(R,[2,71]),t(R,[2,72]),t(R,[2,73]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),{13:A,38:57,41:N,42:I,45:59,46:60,48:C,49:x},t(D,[2,37]),t(D,[2,38]),{16:65,40:O,41:S,42:I},{13:A,38:66,41:N,42:I,45:59,46:60,48:C,49:x},{13:[1,67],15:[1,68]},t(e,[2,17],{61:32,12:69,17:[1,70],42:I,63:g,64:b,65:m,66:f,67:E}),{19:[1,71]},t(e,[2,14]),{18:72,19:[2,56],51:50,52:51,56:T},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:g,64:b,65:m,66:f,67:E},t(v,[2,74]),t(v,[2,75]),{6:$,10:K,39:77,42:w,47:L},{40:[1,82],41:[1,83]},t(M,[2,43],{46:84,13:A,41:N,48:C,49:x}),t(F,[2,45]),t(F,[2,50]),t(F,[2,51]),t(F,[2,52]),t(F,[2,53]),t(e,[2,41],{42:I}),{6:$,10:K,39:85,42:w,47:L},{14:86,40:B,50:Y,70:P},{16:90,40:O,41:S},{11:91,40:y,50:_},{18:92,19:[1,93],51:50,52:51,56:T},t(e,[2,12]),{19:[2,57]},t(z,[2,58],{54:94,55:95,57:96,59:G,60:U}),t([19,56,59,60],[2,63]),t(e,[2,22],{15:[1,100],17:[1,99]}),t([40,50],[2,68]),t(e,[2,36]),{13:A,41:N,45:101,46:60,48:C,49:x},t(e,[2,47]),t(e,[2,48]),t(e,[2,49]),t(D,[2,39]),t(D,[2,40]),t(F,[2,46]),t(e,[2,42]),t(e,[2,8]),t(e,[2,76]),t(e,[2,77]),t(e,[2,78]),{13:[1,102],42:I},{13:[1,104],15:[1,103]},{19:[1,105]},t(e,[2,15]),t(z,[2,59],{55:106,58:[1,107],60:U}),t(z,[2,60]),t(Z,[2,64]),t(z,[2,67]),t(Z,[2,66]),{18:108,19:[1,109],51:50,52:51,56:T},{16:110,40:O,41:S},t(M,[2,44],{46:84,13:A,41:N,48:C,49:x}),{14:111,40:B,50:Y,70:P},{16:112,40:O,41:S},{14:113,40:B,50:Y,70:P},t(e,[2,13]),t(z,[2,61]),{57:114,59:G},{19:[1,115]},t(e,[2,20]),t(e,[2,23],{17:[1,116],42:I}),t(e,[2,11]),{13:[1,117],42:I},t(e,[2,10]),t(Z,[2,65]),t(e,[2,18]),{18:118,19:[1,119],51:50,52:51,56:T},{14:120,40:B,50:Y,70:P},{19:[1,121]},t(e,[2,21]),t(e,[2,9]),t(e,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:(0,c.K2)(function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)},"parseError"),parse:(0,c.K2)(function(t){var e=this,s=[0],i=[],n=[null],r=[],a=this.table,o="",l=0,h=0,u=0,y=r.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(p.yy[_]=this.yy[_]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var g=d.yylloc;r.push(g);var b=d.options&&d.options.ranges;function m(){var t;return"number"!=typeof(t=i.pop()||d.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,c.K2)(function(t){s.length=s.length-2*t,n.length=n.length-t,r.length=r.length-t},"popStack"),(0,c.K2)(m,"lex");for(var f,E,k,O,S,T,R,A,N,I={};;){if(k=s[s.length-1],this.defaultActions[k]?O=this.defaultActions[k]:(null==f&&(f=m()),O=a[k]&&a[k][f]),void 0===O||!O.length||!O[0]){var C="";for(T in N=[],a[k])this.terminals_[T]&&T>2&&N.push("'"+this.terminals_[T]+"'");C=d.showPosition?"Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+N.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(C,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:g,expected:N})}if(O[0]instanceof Array&&O.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+f);switch(O[0]){case 1:s.push(f),n.push(d.yytext),r.push(d.yylloc),s.push(O[1]),f=null,E?(f=E,E=null):(h=d.yyleng,o=d.yytext,l=d.yylineno,g=d.yylloc,u>0&&u--);break;case 2:if(R=this.productions_[O[1]][1],I.$=n[n.length-R],I._$={first_line:r[r.length-(R||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(R||1)].first_column,last_column:r[r.length-1].last_column},b&&(I._$.range=[r[r.length-(R||1)].range[0],r[r.length-1].range[1]]),void 0!==(S=this.performAction.apply(I,[o,h,l,p.yy,O[1],n,r].concat(y))))return S;R&&(s=s.slice(0,-1*R*2),n=n.slice(0,-1*R),r=r.slice(0,-1*R)),s.push(this.productions_[O[1]][0]),n.push(I.$),r.push(I._$),A=a[s[s.length-2]][s[s.length-1]],s.push(A);break;case 3:return!0}}return!0},"parse")},W=function(){return{EOF:1,parseError:(0,c.K2)(function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},"parseError"),setInput:(0,c.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,c.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,c.K2)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,c.K2)(function(){return this._more=!0,this},"more"),reject:(0,c.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,c.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,c.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,c.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,c.K2)(function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,c.K2)(function(t,e){var s,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1},"test_match"),next:(0,c.K2)(function(){if(this.done)return this.EOF;var t,e,s,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;re[0].length)){if(e=s,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,n[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,c.K2)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,c.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,c.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,c.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,c.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,c.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,c.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,c.K2)(function(t,e,s,i){switch(s){case 0:return this.begin("acc_title"),24;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),26;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:case 23:case 28:case 35:break;case 13:return 8;case 14:return 50;case 15:return 70;case 16:return 4;case 17:return this.begin("block"),17;case 18:case 19:case 38:return 49;case 20:case 37:return 42;case 21:return 15;case 22:case 36:return 13;case 24:return 59;case 25:case 26:return 56;case 27:return 60;case 29:return this.popState(),19;case 30:case 73:return e.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;case 34:return this.popState(),10;case 39:return this.begin("style"),37;case 40:return 43;case 41:case 45:case 46:case 59:return 63;case 42:case 43:case 44:case 52:case 54:case 61:return 65;case 47:case 48:case 49:case 50:case 51:case 53:case 60:return 64;case 55:case 56:case 57:case 58:return 66;case 62:return 67;case 63:case 66:case 67:case 68:return 68;case 64:case 65:return 69;case 69:return 41;case 70:return 47;case 71:return 40;case 72:return 48;case 74:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:[0-9])/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,69,70],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,71,72,73,74],inclusive:!0}}}}();function X(){this.yy={}}return j.lexer=W,(0,c.K2)(X,"Parser"),X.prototype=j,j.Parser=X,new X}();u.parser=u;var y=u,d=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=c.SV,this.getAccTitle=c.iN,this.setAccDescription=c.EI,this.getAccDescription=c.m7,this.setDiagramTitle=c.ke,this.getDiagramTitle=c.ab,this.getConfig=(0,c.K2)(()=>(0,c.D7)().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{(0,c.K2)(this,"ErDB")}addEntity(t,e=""){return this.entities.has(t)?!this.entities.get(t)?.alias&&e&&(this.entities.get(t).alias=e,c.Rm.info(`Add alias '${e}' to entity '${t}'`)):(this.entities.set(t,{id:`entity-${t}-${this.entities.size}`,label:t,attributes:[],alias:e,shape:"erBox",look:(0,c.D7)().look??"default",cssClasses:"default",cssStyles:[]}),c.Rm.info("Added new entity :",t)),this.entities.get(t)}getEntity(t){return this.entities.get(t)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(t,e){const s=this.addEntity(t);let i;for(i=e.length-1;i>=0;i--)e[i].keys||(e[i].keys=[]),e[i].comment||(e[i].comment=""),s.attributes.push(e[i]),c.Rm.debug("Added attribute ",e[i].name)}addRelationship(t,e,s,i){const n=this.entities.get(t),r=this.entities.get(s);if(!n||!r)return;const a={entityA:n.id,roleA:e,entityB:r.id,relSpec:i};this.relationships.push(a),c.Rm.debug("Added new relationship :",a)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(t){this.direction=t}getCompiledStyles(t){let e=[];for(const s of t){const t=this.classes.get(s);t?.styles&&(e=[...e,...t.styles??[]].map(t=>t.trim())),t?.textStyles&&(e=[...e,...t.textStyles??[]].map(t=>t.trim()))}return e}addCssStyles(t,e){for(const s of t){const t=this.entities.get(s);if(!e||!t)return;for(const s of e)t.cssStyles.push(s)}}addClass(t,e){t.forEach(t=>{let s=this.classes.get(t);void 0===s&&(s={id:t,styles:[],textStyles:[]},this.classes.set(t,s)),e&&e.forEach(function(t){if(/color/.exec(t)){const e=t.replace("fill","bgFill");s.textStyles.push(e)}s.styles.push(t)})})}setClass(t,e){for(const s of t){const t=this.entities.get(s);if(t)for(const s of e)t.cssClasses+=" "+s}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],(0,c.IU)()}getData(){const t=[],e=[],s=(0,c.D7)();for(const n of this.entities.keys()){const e=this.entities.get(n);e&&(e.cssCompiledStyles=this.getCompiledStyles(e.cssClasses.split(" ")),t.push(e))}let i=0;for(const n of this.relationships){const t={id:(0,a.rY)(n.entityA,n.entityB,{prefix:"id",counter:i++}),type:"normal",curve:"basis",start:n.entityA,end:n.entityB,label:n.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:n.relSpec.cardB.toLowerCase(),arrowTypeEnd:n.relSpec.cardA.toLowerCase(),pattern:"IDENTIFYING"==n.relSpec.relType?"solid":"dashed",look:s.look};e.push(t)}return{nodes:t,edges:e,other:{},config:s,direction:"TB"}}},p={};(0,c.VA)(p,{draw:()=>_});var _=(0,c.K2)(async function(t,e,s,l){c.Rm.info("REF0:"),c.Rm.info("Drawing er diagram (unified)",e);const{securityLevel:h,er:u,layout:y}=(0,c.D7)(),d=l.db.getData(),p=(0,i.A)(e,h);d.type=l.type,d.layoutAlgorithm=(0,r.q7)(y),d.config.flowchart.nodeSpacing=u?.nodeSpacing||140,d.config.flowchart.rankSpacing=u?.rankSpacing||80,d.direction=l.db.getDirection(),d.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],d.diagramId=e,await(0,r.XX)(d,p),"elk"===d.layoutAlgorithm&&p.select(".edges").lower();const _=p.selectAll('[id*="-background"]');Array.from(_).length>0&&_.each(function(){const t=(0,o.Ltv)(this),e=t.attr("id").replace("-background",""),s=p.select(`#${CSS.escape(e)}`);if(!s.empty()){const e=s.attr("transform");t.attr("transform",e)}});a._K.insertTitle(p,"erDiagramTitleText",u?.titleTopMargin??25,l.db.getDiagramTitle()),(0,n.P)(p,8,"erDiagram",u?.useMaxWidth??!0)},"draw"),g=(0,c.K2)((t,e)=>{const s=l.A,i=s(t,"r"),n=s(t,"g"),r=s(t,"b");return h.A(i,n,r,e)},"fade"),b=(0,c.K2)(t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .labelBkg {\n background-color: ${g(t.tertiaryColor,.5)};\n }\n\n .edgeLabel .label {\n fill: ${t.nodeBorder};\n font-size: 14px;\n }\n\n .label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .edge-pattern-dashed {\n stroke-dasharray: 8,8;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon\n {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n }\n\n .marker {\n fill: none !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n }\n`,"getStyles"),m={parser:y,get db(){return new d},renderer:p,styles:b}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/798756ac.9b5756e8.js b/docs/assets/js/798756ac.9b5756e8.js
deleted file mode 100644
index d601efb..0000000
--- a/docs/assets/js/798756ac.9b5756e8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[3085],{1010:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>a});const l=JSON.parse('{"id":"NeoForge1.21Tutorial/\u7b2c\u4e94\u7ae0/nf1.21ep5","title":"\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)","description":"\u63d0\u793a","source":"@site/tutorial/1-NeoForge1.21Tutorial/5-\u7b2c\u4e94\u7ae0/index.md","sourceDirName":"1-NeoForge1.21Tutorial/5-\u7b2c\u4e94\u7ae0","slug":"/nf1.21/ep5","permalink":"/docs/tutorial/nf1.21/ep5","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep5","slug":"/nf1.21/ep5"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)","permalink":"/docs/tutorial/nf1.21/ep4"},"next":{"title":"\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa","permalink":"/docs/tutorial/nf1.21/additions/NotThatAccess"}}');var c=t(4848),r=t(8453);const i={id:"nf1.21ep5",slug:"/nf1.21/ep5"},o="\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)",s={},a=[{value:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53",id:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53",level:2},{value:"\u65b9\u5757\u7684\u6ce8\u518c",id:"\u65b9\u5757\u7684\u6ce8\u518c",level:3},{value:"\u65b9\u5757\u5c5e\u6027",id:"\u65b9\u5757\u5c5e\u6027",level:3},{value:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757",id:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757",level:3},{value:"\u65b9\u5757\u72b6\u6001",id:"\u65b9\u5757\u72b6\u6001",level:3},{value:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757",id:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757",level:2},{value:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c",id:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c",level:3},{value:"\u65b9\u5757\u5b9e\u4f53\u7c7b",id:"\u65b9\u5757\u5b9e\u4f53\u7c7b",level:3}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.header,{children:(0,c.jsx)(n.h1,{id:"\u7b2c\u4e94\u7ae0-\u7b2c\u4e00\u4e2a\u65b9\u5757block",children:"\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)"})}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:[":information","_source:",(0,c.jsx)(n.strong,{children:"\u63d0\u793a"})]}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u8fd9\u91cc\uff0c\u6211\u5c06\u5c3d\u91cf\u8be6\u7ec6\u7684\u5bf9\u5199\u7684\u6bcf\u4e00\u6bb5\u4ee3\u7801\u8fdb\u884c\u8bb2\u89e3\uff0c\u4ee5\u8ba9\u4f60\u5bf9\u81ea\u5df1\u5230\u5e95\u5728\u5199\u4ec0\u4e48\u6709\u5145\u5206\u7684\u4e86\u89e3\uff0c\u800c\u4e0d\u662f\u4ec5\u4ec5\u7684\u8fd9\u91cc\u5e94\u8be5\u8fd9\u6837\u5199\u3002"}),"\n"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:[":information","_source:",(0,c.jsx)(n.strong,{children:"\u63d0\u793a"})]}),"\n",(0,c.jsx)(n.p,{children:"\u672c\u7ae0\u4e3a\u5408\u4f5c\u8005\u63d0\u4f9b\uff0c\u4f5c\u8005: yhz_cake"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53",children:"\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53"}),"\n",(0,c.jsxs)(n.p,{children:["\u5728Minecraft\u4e2d\uff0c\u65b9\u5757\u6240\u4ee3\u8868\u7684\u5e76\u975e\u65b9\u5757\u672c\u8eab\uff0c\u800c\u662f\u5305\u542b\u4e86**\u65b9\u5757(Block)",(0,c.jsx)(n.strong,{children:"\u548c"}),"\u65b9\u5757\u5b9e\u4f53(Block Entity)**\u4e24\u90e8\u5206\u3002\u6700\u7b80\u5355\u7684\u77f3\u5934(Stone)\uff0c\u6ce5\u571f(Dirt)\u7b49\u65b9\u5757\uff0c\u5c31\u662f\u666e\u901a\u7684\u65b9\u5757\uff0c\u5b83\u4eec\u4e0d\u5305\u542b\u65b9\u5757\u5b9e\u4f53\uff0c\u800c\u5de5\u4f5c\u53f0(Crafting Table)\u3001\u7194\u7089(Furnace)\u7b49\uff0c\u5c31\u540c\u65f6\u5305\u542b\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53\u4e24\u90e8\u5206\u3002"]}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u7684\u6ce8\u518c",children:"\u65b9\u5757\u7684\u6ce8\u518c"}),"\n",(0,c.jsx)(n.p,{children:"\u73b0\u5728\u6211\u4eec\u77e5\u9053\u4e86\u6ce8\u518c\u7684\u57fa\u672c\u6d41\u7a0b\uff0c\u73b0\u5728\u6211\u4eec\u6765\u770b\u770b\u65b9\u5757\u7684\u6ce8\u518c\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'//Blocks\u7c7b\npublic static final Block DIRT = register("dirt", new Block(BlockBehaviour.Properties.of().mapColor(MapColor.DIRT).strength(0.5F).sound(SoundType.GRAVEL)));\n'})}),"\n",(0,c.jsxs)(n.p,{children:["\u8fd9\u662f\u539f\u7248\u4e2d\u6ce5\u571f\u7684\u6ce8\u518c\u4ee3\u7801\uff0c\u58f0\u660e\u4e86\u4e00\u4e2a",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u7684\u5e38\u91cf",(0,c.jsx)(n.code,{children:"DIRT"}),"\u3002",(0,c.jsx)(n.code,{children:"register"}),"\u662f",(0,c.jsx)(n.code,{children:"Blocks"}),"\u7c7b\u5b9a\u4e49\u7684\u65b9\u6cd5\uff0c\u7528\u6765\u5728\u6ce8\u518c\u8868\u6ce8\u518c\u65b9\u5757\u7c7b\u3002\u4f46\u662f\u6211\u4eec\u4f7f\u7528neoforge\u8fdb\u884cmodding\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5728\u5f88\u591a\u7684\u60c5\u51b5\u4e0b\u539f\u7248\u7684\u4ee3\u7801\u662f",(0,c.jsx)(n.code,{children:"private"}),"\u7684\uff0c\u65e0\u6cd5\u76f4\u63a5\u4f7f\u7528\u3002\u56e0\u6b64neoforge\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7c7b\u7528\u6765\u4e13\u95e8\u8fdb\u884c\u6ce8\u518c\uff0c\u5305\u62ec\u5bf9\u539f\u7248\u7684\u6ce8\u518c\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'public static final DeferredBlock TEST_BLOCK = registerBlocks("test_block", () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT)));\n'})}),"\n",(0,c.jsxs)(n.p,{children:["\u53ef\u4ee5\u770b\u5230\u4f7f\u7528\u4e0a\u8ddf\u539f\u7248\u662f\u4e00\u81f4\u7684\uff08\u5373\u4f7f\u5728\u5b9e\u73b0\u4e0a\u5b58\u5728\u4e0d\u5c0f\u7684\u533a\u522b\uff09\u3002\u6240\u6709\u8ddf\u539f\u7248\u76f8\u5173\u7684\u6ce8\u518c\u8868\u90fd\u53ef\u4ee5\u641c\u7d22",(0,c.jsx)(n.code,{children:"Deferred"}),"\u6765\u67e5\u627e\uff0c\u540e\u9762\u4e5f\u4f1a\u518d\u6b21\u63d0\u5230\u3002"]}),"\n",(0,c.jsxs)(n.p,{children:["\u5176\u4e2d\u7684",(0,c.jsx)(n.code,{children:"registerBlocks"}),"\u662f\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u65b9\u6cd5\uff0c\u4e3b\u8981\u7528\u6765\u76f4\u63a5\u6ce8\u518c\u65b9\u5757\u5bf9\u5e94\u7684\u7269\u54c1\uff0c\u56e0\u4e3a\u53ea\u6ce8\u518c\u4e86\u65b9\u5757\u6211\u4eec\u662f\u65e0\u6cd5\u5728\u6e38\u620f\u4e2d\u6b63\u5e38\u4f7f\u7528\u7684\uff0c\u6211\u4eec\u6ca1\u6709\u5bf9\u5e94\u7684\u7269\u54c1\u53bb\u653e\u7f6e\u8fd9\u4e2a\u65b9\u5757\u3002\u5982\u679c\u4f60\u60f3\u8981\u5f97\u5230\u4e00\u4e2a\u7b80\u5355\u7684\u5bf9\u5e94\u65b9\u5757\u7684\u7269\u54c1\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u7528\u8fd9\u6837\u7684\u65b9\u6cd5\u8fdb\u884c\u7b80\u5316\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"//ModBlocks\u7c7b\nprivate static void registerBlockItems(String name, DeferredBlock block) {\n ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties()));\n}\n\nprivate static DeferredBlock registerBlocks(String name, Supplier block) {\n DeferredBlock blocks = BLOCKS.register(name, block);\n registerBlockItems(name, blocks);\n return blocks;\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5f53\u7136\u5982\u679c\u4f60\u5bf9\u4e8e\u65b9\u5757\u5bf9\u5e94\u7684\u7269\u54c1\u6709\u989d\u5916\u7684\u60f3\u6cd5\u548c\u8bbe\u8ba1\uff0c\u53c2\u8003\u8fd9\u4e2a\u65b9\u6cd5\u4e5f\u53ef\u4ee5\u53ea\u5355\u72ec\u7684\u6ce8\u518c\u65b9\u5757\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e0d\u8fc7\u4f60\u8fd8\u9700\u8981\u6ce8\u610f\u6ce8\u518c\u8868\u9700\u8981\u624b\u52a8\u6dfb\u52a0\u8fdbEventBus\u4e2d\uff0c\u6765\u8ba9neoforge\u660e\u767d\u8fd9\u91cc\u6709\u4e00\u4e2a\u6ce8\u518c\u8868\u9700\u8981\u8fdb\u884c\u6ce8\u518c\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"//\u4f60\u7684\u65b9\u5757\u6ce8\u518c\u7c7b{ModBlocks}\npublic static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Example_Mod.MOD_ID);\n...//\u8fd9\u91cc\u53ef\u4ee5\u6dfb\u52a0\u4f60\u7684\u6ce8\u518c\u903b\u8f91\n\npublic static void register(IEventBus eventBus) {\n BLOCKS.register(eventBus);\n}\n\n//\u4f60\u7684\u6a21\u7ec4\u4e3b\u7c7b{Example_Mod}\npublic Example_Mod(IEventBus modEventBus, ModContainer modContainer) {\n ...\n ModBlocks.register(modEventBus);\n ...\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u8fd9\u6837\u5c31\u5b8c\u6210\u4e86\u4e00\u4e2a\u7b80\u5355\u65b9\u5757\u7684\u6ce8\u518c\u3002"}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u5c5e\u6027",children:"\u65b9\u5757\u5c5e\u6027"}),"\n",(0,c.jsxs)(n.p,{children:["\u4e0d\u8fc7\u4f60\u53ef\u80fd\u4f1a\u597d\u5947\uff0c",(0,c.jsx)(n.code,{children:"BlockBehaviour.Properties"}),"\u662f\u7528\u6765\u5e72\u4ec0\u4e48\u7684\uff1f"]}),"\n",(0,c.jsxs)(n.p,{children:["\u8fd9\u5176\u5b9e\u5c31\u76f8\u5f53\u4e8e\u65b9\u5757\u7684\u5c5e\u6027\uff0c\u65b9\u5757\u7684\u786c\u5ea6\uff0c\u7206\u70b8\u6297\u6027\u7b49\u7b49\uff0c\u90fd\u662f\u7531",(0,c.jsx)(n.code,{children:"Properties"}),"\u63a7\u5236\u7684\uff0c\u5177\u4f53\u7684\u53ef\u4ee5\u5728",(0,c.jsx)(n.code,{children:"BlockBehaviour.Properties"}),"\u7c7b\u91cc\u81ea\u884c\u67e5\u770b\uff0c\u8fd9\u91cc\u5c31\u4e0d\u4f5c\u8fc7\u591a\u4ecb\u7ecd\u4e86\u3002"]}),"\n",(0,c.jsx)(n.h3,{id:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757",children:"\u66f4\u5f3a\u5927\u7684\u65b9\u5757"}),"\n",(0,c.jsxs)(n.p,{children:["\u73b0\u5728\uff0c\u4f60\u60f3\u8981\u5b8c\u6210\u4e00\u4e2a\u4f1f\u5927\u7684\u4f7f\u547d\uff0c\u60f3\u8981\u5728Minecraft\u4e2d\u6dfb\u52a0\u7ad6\u534a\u7816\uff01\u8fd9\u662f\u4e00\u4e2a\u524d\u6240\u672a\u6709\u7684\u4f1f\u5927\u4e8b\u4e1a\uff0c\u4ee5\u81f3\u4e8e\u539f\u7248\u7684",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u6839\u672c\u65e0\u6cd5\u652f\u6301\u8fd9\u9879\u4efb\u52a1\uff0c\u56e0\u6b64\u4f60\u9700\u8981\u5bf9",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u8fdb\u884c\u4fee\u6539\u3002\u4f46\u662f\u76f4\u63a5\u4fee\u6539\u539f\u7248\u7684",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u5f88\u663e\u7136\u662f\u6781\u5176\u611a\u8822\u4e14\u4e0d\u4f18\u96c5\u7684\uff0c\u5176\u5b9e\u6211\u4eec\u53ea\u9700\u8981",(0,c.jsx)(n.strong,{children:"\u7ee7\u627f"}),(0,c.jsx)(n.code,{children:"Block"}),'\u7c7b\u5c31\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u65b9\u5757\u7c7b\u800c\u4e0d\u9700\u8981"\u4fee\u6539"',(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u3002"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"public class ExampleBlock extends Block {\n public ExampleBlock(Properties properties) {\n super(properties);\n ...\n }\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684\u53ef\u4ee5\u4fee\u6539\u7684\u65b9\u6cd5\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'@Override\npublic VoxelShape getShape(BlockState state, BlockGetter getter, BlockPos pos, CollisionContext context) {\n //\u6b64\u9879\u63a7\u5236\u65b9\u5757\u7684\u78b0\u649e\u7bb1\uff0c\u4e5f\u5c31\u662f\u8fd9\u4e2a\u65b9\u5757\u5b9e\u9645\u7684"\u5360\u5730\u9762\u79ef"\n //\u4e00\u4e2a\u4e0d\u80fd\u6362\u65b9\u5411\u7684\u534a\u7816\n return Block.box(0, 0, 0, 8, 16, 16);\n}\n\n//\u539f\u7248\u7684\u7f16\u89e3\u7801\u5668\u5199\u6cd5\uff0c\u6b64\u5904\u53ef\u501f\u9274\npublic static final MapCodec CODEC = simpleCodec(ExampleBlock::new);\n\n@Override\nprotected MapCodec extends ExampleBlock> codec() {\n //\u7f16\u89e3\u7801\u5668\uff0c\u7528\u4e8e\u7f16\u89e3\u7801json\u4e0enbt\n return CODEC;\n}\n\n@Override\npublic RenderShape getRenderShape(BlockState state) {\n //RenderShape\u662f\u4e00\u4e2a\u679a\u4e3e\u7c7b\uff0c\u4e00\u5171\u6709\u4e09\u79cd\u6a21\u578b\u7c7b\u578b\n //MODEL\u5c31\u662f\u6b63\u5e38\u7684\u65b9\u5757\u6a21\u578b\uff0c\u4e00\u822c\u90fd\u7528\u8fd9\u4e2a\n //ENTITYBLOCK_ANIMATED\u662f\u65b9\u5757\u5b9e\u4f53\u52a8\u753b\uff0c\u6bd4\u5982\u7bb1\u5b50\n //INVISIBLE\u662f\u4e0d\u53ef\u89c1\uff0c\u5b57\u9762\u610f\u601d\n return RenderShape.MODEL;\n}\n\n@Override\npublic void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) {\n //\u6839\u636e\u653e\u7f6e\u6240\u4f7f\u7528\u7684\u7269\u54c1\u6765\u505a\u51fa\u6539\u53d8\n super.setPlacedBy(level, pos, state, placer, stack);\n}\n\n@Override\npublic void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) {\n //\u5728\u79fb\u9664\u65f6\u6267\u884c\u7684\u65b9\u6cd5\n super.onRemove(state, level, pos, newState, isMoving);\n}\n\n@Override\npublic ItemStack getCloneItemStack(BlockState state, HitResult target, LevelReader level, BlockPos pos, Player player) {\n //\u4e2d\u952e\u83b7\u53d6\u7684\u7269\u54c1\n}\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u73b0\u5728\u518d\u5728\u65b9\u5757\u6ce8\u518c\u7c7b\u4e2d\u6ce8\u518c\uff0c\u5c31\u53ef\u4ee5\u5728\u6e38\u620f\u4e2d\u770b\u5230\u4f60\u7684\u65b0\u65b9\u5757\u4e86\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'public static final DeferredBlock EXAMPLE_BLOCK = registerBlocks("example_block", () -> new ExampleBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT)));\n'})}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u72b6\u6001",children:"\u65b9\u5757\u72b6\u6001"}),"\n",(0,c.jsxs)(n.p,{children:['\u867d\u7136\u5728\u521a\u521a\u6211\u4eec\u7b80\u5355\u7684\u5199\u4e86\u4e00\u4e2a\u7ad6\u534a\u7816\uff0c\u4f46\u662f\u5b83\u53ea\u80fd\u5728\u4e00\u4e2a\u4f4d\u7f6e\uff0c\u8fd9\u663e\u7136\u8ddf\u6211\u4eec\u7684\u6784\u60f3\u662f\u4e0d\u7b26\u5408\u7684\uff0c\u663e\u7136\u6211\u4eec\u9700\u8981\u8ba9\u5b83\u80fd\u591f"\u65cb\u8f6c"\u3002\u8fd9\u5c31\u9700\u8981\u4f7f\u7528\u5230',(0,c.jsx)(n.strong,{children:"\u65b9\u5757\u72b6\u6001"}),"\uff0c\u901a\u8fc7\u8bc6\u522b\u5728\u653e\u7f6e\u65f6\u7684\u4fe1\u606f\u6765\u8ba9\u7ad6\u534a\u7816\u7b26\u5408\u6211\u4eec\u7684\u9884\u671f\u3002"]}),"\n",(0,c.jsx)(n.p,{children:"\u4e0b\u9762\u662f\u539f\u7248\u4e2d\u5e26\u91c9\u9676\u74e6\u7684\u65b9\u5757\u72b6\u6001\u4ee3\u7801\uff0c\u53ef\u4ee5\u7ed9\u6211\u4eec\u4e00\u4e9b\u7075\u611f\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"//\u521b\u5efa\u4e00\u4e2a\u53ea\u5728\u6c34\u5e73\u65b9\u5411\u53d8\u5316\u7684\u65b9\u5411\u72b6\u6001\uff0c\u5173\u4e8e\u5982\u4f55\u521b\u5efa\u81ea\u5b9a\u4e49\u7684\u65b9\u5757\u72b6\u6001\u6807\u7b7e\u8bf7\u53c2\u8003BlockStateProperties\npublic static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING;\n\n@Override\nprotected void createBlockStateDefinition(StateDefinition.Builder builder) {\n //\u4e3a\u65b9\u5757\u6dfb\u52a0\u65b9\u5757\u72b6\u6001\u7684\u6807\u7b7e\n builder.add(FACING);\n}\n\n@Override\npublic BlockState getStateForPlacement(BlockPlaceContext context) {\n //\u6839\u636e\u653e\u7f6e\u65f6\u7684\u73a9\u5bb6\u65b9\u4f4d\u3001\u70b9\u51fb\u65b9\u5757\u9762\u7b49\u8bbe\u7f6e\u65b9\u5757\u72b6\u6001\n return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());\n}\n\n@Override\nprotected BlockState rotate(BlockState state, Rotation rot) {\n //\u4ece\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u4e2d\u8fd4\u56de\u5177\u6709\u6307\u5b9a\u65cb\u8f6c\u7684\u65b9\u5757\u72b6\u6001\u3002\u5982\u679c\u4e0d\u9002\u7528\uff0c\u5219\u8fd4\u56de\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u3002\n return state.setValue(FACING, rot.rotate(state.getValue(FACING)));\n}\n\n@Override\nprotected BlockState mirror(BlockState state, Mirror mirror) {\n //\u4ece\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u4e2d\u8fd4\u56de\u5177\u6709\u7ed9\u5b9a\u955c\u50cf\u7684\u4f20\u5165\u65b9\u5757\u72b6\u6001\u3002\u5982\u679c\u4e0d\u9002\u7528\uff0c\u5219\u8fd4\u56de\u4f20\u5165\u7684\u65b9\u5757\u72b6\u6001\u3002\n return state.rotate(mirror.getRotation(state.getValue(FACING)));\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u65b9\u5757\u72b6\u6001\u7684\u7f16\u5199\u5c31\u9700\u8981\u81ea\u5df1\u7684\u60f3\u8c61\u529b\u4e86\uff0c\u4ece\u8fd9\u91cc\u5f00\u59cb\u5c31\u8981\u52a0\u5165\u81ea\u5df1\u7684\u7406\u89e3\u6765\u7f16\u5199\u5c5e\u4e8e\u81ea\u5df1\u7684\u5947\u8ff9\u3002\u672c\u6559\u7a0b\u53ea\u80fd\u63d0\u4f9b\u57fa\u7840\uff0c\u8ba9\u5f00\u53d1\u8005\u66f4\u5feb\u7684\u719f\u6089\u5404\u79cd\u65b9\u6cd5\u5c5e\u6027\u5bf9\u5e94\u7740\u4ec0\u4e48\uff0c\u5176\u4ed6\u7684\u90fd\u53ea\u80fd\u9760\u81ea\u5df1\u6765\u521b\u9020\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757",children:"\u5305\u542b\u65b9\u5757\u5b9e\u4f53\u7684\u65b9\u5757"}),"\n",(0,c.jsxs)(n.p,{children:["\u4ee5\u4e0a\u6211\u4eec\u4fbf\u80fd\u5199\u51fa\u4e00\u4e2a\u5b8c\u6574\u7684\u65b9\u5757\u4e86\uff0c\u4f46\u5982\u679c\u4f60\u5e0c\u671b\u81ea\u5df1\u7684\u65b9\u5757\u62e5\u6709\u5de5\u4f5c\u53f0\u3001\u7bb1\u5b50\u3001\u7194\u7089\u90a3\u6837\u7684\u4f5c\u7528\u7684\u8bdd\uff0c\u53ea\u662f\u4ee5\u4e0a\u7684\u90e8\u5206\u663e\u7136\u8fd8\u8fdc\u8fdc\u4e0d\u591f\uff0c\u8fd9\u5c31\u9700\u8981\u4f60\u7684\u65b9\u5757\u62e5\u6709\u4e00\u4e2a\u5bf9\u5e94\u7684",(0,c.jsx)(n.strong,{children:"\u65b9\u5757\u5b9e\u4f53"}),"\u4e86\u3002"]}),"\n",(0,c.jsxs)(n.p,{children:["\u5f53\u7136\uff0c\u8fd9\u65f6\u5982\u679c\u53ea\u662f\u7b80\u5355\u7684\u7ee7\u627f",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u5c31\u6709\u70b9\u4e0d\u591f\u4e86\uff0c\u4f60\u53ef\u4ee5\u5728\u7ee7\u627f",(0,c.jsx)(n.code,{children:"Block"}),"\u7c7b\u7684\u540c\u65f6\u5b9e\u73b0",(0,c.jsx)(n.code,{children:"EntityBlock"}),"\u63a5\u53e3\uff0c\u6216\u8005\u7b80\u5355\u70b9\u76f4\u63a5\u7ee7\u627f",(0,c.jsx)(n.code,{children:"BaseEntityBlock"}),"\u7c7b\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"public class ExampleEntityBlock extends Block implements EntityBlock {\n}\n\n//\u6216\u8005\n\npublic class ExampleEntityBlock extends BaseEntityBlock {\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u53ef\u4ee5\u4fee\u6539\u7684\u65b9\u6cd5\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"@Override\npublic BlockEntity newBlockEntity(BlockPos pos, BlockState state) {\n //\u6307\u5b9a\u65b9\u5757\u5bf9\u5e94\u7684\u65b9\u5757\u5b9e\u4f53\n return new ExampleEBEntity(pos, state);\n //EB\u5c31\u662f\u6307\u4ee3EntityBlock\uff0c\u5168\u5199\u592a\u957f\u4e86\n}\n\n@Override\npublic BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) {\n if (type == ModBlockEntities.EXAMPLE_ENTITY_BLOCK.get()) {\n //\u7528\u4e8e\u6267\u884c\u65b9\u5757\u7684\u523b\u65b9\u6cd5\uff0c\u5728Entity\u7c7b\u91cc\u4e5f\u4f1a\u63d0\u5230\n return ExampleEBEntity::tick;\n }\n return null;\n}\n\n@Override\npublic InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) {\n if (!level.isClientSide()) {\n BlockEntity entity = level.getBlockEntity(pos);\n if (entity instanceof ExampleEBEntity) {\n player.openMenu(state.getMenuProvider(level, pos));\n //\u6253\u5f00\u65b9\u5757\u5bf9\u5e94\u7684GUI\uff0c\u540e\u9762\u4f1a\u63d0\u5230GUI\u7684\u7f16\u5199\n return InteractionResult.CONSUME;\n }\n }\n return InteractionResult.SUCCESS;\n}\n"})}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c",children:"\u65b9\u5757\u5b9e\u4f53\u7684\u6ce8\u518c"}),"\n",(0,c.jsxs)(n.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u7801\u4e2d\u6709\u4e00\u4e2a",(0,c.jsx)(n.code,{children:"ModBlockEntities"}),"\u7c7b\u9700\u8981\u89e3\u91ca\u4e00\u4e0b\uff0c\u5728\u539f\u7248\u4e2d\uff0c",(0,c.jsx)(n.code,{children:"BlockEntityType"}),"\u7c7b\u4e2d\u5305\u542b\u4e86\u6240\u6709\u65b9\u5757\u4e0e\u65b9\u5757\u5b9e\u4f53\u7c7b\u7684\u5bf9\u5e94\u5173\u7cfb\uff0c\u5728\u4e4b\u540e\u7684\u4ee3\u7801\u7f16\u5199\u4e2d\u8fd9\u51e0\u4e4e\u662f\u65e0\u6cd5\u7ed5\u5f00\u7684\u4e00\u73af\uff0c\u5f53\u7136\u7684\uff0c\u5176\u4e2d\u6ce8\u518c\u7684\u65b9\u6cd5\u662f\u79c1\u6709\u7684\uff0c\u5bfc\u81f4\u6211\u4eec\u65e0\u6cd5\u76f4\u63a5\u6ce8\u518c\u65b0\u7684\u65b9\u5757\u5b9e\u4f53\u7c7b\u578b\u3002\u90a3\u4e48\u5f53\u7136\u7684\uff0c\u524d\u9762\u63d0\u5230\u7684",(0,c.jsx)(n.code,{children:"DeferredRegister"}),"\u5c31\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u6ce8\u518c\u81ea\u5df1\u7684\u65b9\u5757\u5b9e\u4f53\u7c7b\u578b\u3002\u5b83\u8ddf\u65b9\u5757\u7684\u6ce8\u518c\u5199\u6cd5\u7565\u6709\u4e0d\u540c\uff1a"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'public static final DeferredRegister> BLOCK_ENTITIES =\n DeferredRegister.create(BuiltInRegistries.BLOCK_ENTITY_TYPE, Example_Mod.MOD_ID);\n\npublic static final DeferredHolder, BlockEntityType> EXAMPLE_ENTITY_BLOCK =\n BLOCK_ENTITIES.register("example_entity_block", new Supplier>() {\n @Override\n public BlockEntityType get() {\n return BlockEntityType.Builder.of(ExampleEBEntity::new,\n ModBlocks.EXAMPLE_ENTITY_BLOCK.get()).build(null);\n }\n });\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5f53\u7136\uff0c\u8bb0\u5f97\u5728\u65b9\u5757\u6ce8\u518c\u7c7b\u6ce8\u518c\u65b9\u5757\uff0c\u6b64\u5904\u4e0d\u518d\u8d58\u8ff0\u3002"}),"\n",(0,c.jsx)(n.h3,{id:"\u65b9\u5757\u5b9e\u4f53\u7c7b",children:"\u65b9\u5757\u5b9e\u4f53\u7c7b"}),"\n",(0,c.jsx)(n.p,{children:"\u73b0\u5728\u6240\u6709\u7684\u51c6\u5907\u5de5\u4f5c\u5df2\u7ecf\u57fa\u672c\u5b8c\u6210\u4e86\uff0c\u63a5\u4e0b\u6765\u5c31\u662f\u6700\u91cd\u8981\u7684\u4e00\u6b65\uff0centity\u7c7b\u7684\u7f16\u5199\u3002\u6211\u4eec\u4ee5\u949f\u4e3a\u53c2\u8003\uff0c\u7f16\u5199\u4e00\u4e2a\u7a7a\u767d\u7684\u65b9\u5757\u5b9e\u4f53\u6846\u67b6\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:"public class ExampleEBEntity extends BlockEntity {\n public ExampleEBEntity(BlockPos pos, BlockState blockState) {\n super(ModBlockEntities.EXAMPLE_ENTITY_BLOCK.get(), pos, blockState);\n }\n\n private static void tick(Level level, BlockPos pos, BlockState state, BlockEntity entity) {\n //\u5728ExampleEntityBlock\u4e2d\u8c03\u7528\u7684\u65b9\u6cd5\uff0c\u65b9\u5757\u968f\u673a\u523b\n if (entity instanceof ExampleEBEntity) {\n ...\n }\n }\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u4e86\u89e3\u6bcf\u4e2a\u65b9\u5757\u6709\u54ea\u4e9b\u5730\u65b9\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\u6211\u4eec\u7684\u60f3\u6cd5\uff1a"}),"\n",(0,c.jsxs)(n.p,{children:["\u4e00\u79cd\u662f\u5355\u6b21\u8c03\u7528\u7684\uff0c\u6bd4\u5982",(0,c.jsx)(n.code,{children:"onHit"}),"\uff0c",(0,c.jsx)(n.code,{children:"onBreak"}),"\u7b49\u3002"]}),"\n",(0,c.jsxs)(n.p,{children:["\u53e6\u4e00\u79cd\u4e5f\u662f\u6700\u4e3b\u8981\u7684\uff0c\u5c31\u662f",(0,c.jsx)(n.code,{children:"tick"}),"\u65b9\u6cd5\uff0c\u5728\u63a5\u4e0b\u6765\u4f1a\u4e3b\u8981\u8bb2",(0,c.jsx)(n.code,{children:"tick"}),"\u65b9\u6cd5\u7684\u4f7f\u7528\uff0c\u56e0\u4e3a\u5b83\u4eec\u4e4b\u95f4\u7684\u4f7f\u7528\u51e0\u4e4e\u662f\u4e00\u81f4\u7684\u3002"]}),"\n",(0,c.jsx)(n.p,{children:"\u6700\u7b80\u5355\u7684\uff0c\u6211\u4eec\u53ef\u4ee5\u5c1d\u8bd5\u6bcf\u4e2a\u968f\u673a\u523b\u5411\u63a7\u5236\u53f0\u8f93\u51fa\u4e00\u4e9b\u81ea\u8eab\u7684\u4fe1\u606f\uff0c\u6bd4\u5982\u65b9\u5757\u5b9e\u4f53\u7684\u4f4d\u7f6e\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-java",children:'@Override\npublic void tick(Level level, BlockPos pos, BlockState state, BlockEntity entity) {\n if (entity instanceof ExampleEBEntity) {\n System.out.println("ExampleEBEntity tick at " + pos);\n }\n}\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u4e0b\u4e00\u7ae0\u6211\u4eec\u5c06\u4ece\u5404\u4e2a\u65b9\u5411\u6765\u5b8c\u5584\u65b9\u5757\u5b9e\u4f53\u7684\u7f16\u5199\u3002"}),"\n",(0,c.jsx)(n.hr,{}),"\n",(0,c.jsx)(n.p,{children:"yhz_cake\u4e8e2025\u5e7412\u670814\u65e5\u8d77\u7a3f\u5e76\u4e8e15\u65e5\u6682\u65f6\u4e2d\u6b62"}),"\n",(0,c.jsx)(n.p,{children:"yhz_cake\u4fee\u6b63\u4e8e2025\u5e7412\u670821\u65e5\uff0c\u53c8\u7ee7\u7eed\u7ec8\u6b62"}),"\n",(0,c.jsx)(n.p,{children:"yhz_cake\u4e8e2026\u5e744\u67083\u65e5\u8f6c\u79fb\u81f3\u4ed3\u5e93\u5e76\u91cd\u65b0\u6392\u7248"}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"Copyright \xa9 2026 yhz_cake. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(d,{...e})}):d(e)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/978d3c1d.71934c63.js b/docs/assets/js/978d3c1d.71934c63.js
deleted file mode 100644
index b3e0fd7..0000000
--- a/docs/assets/js/978d3c1d.71934c63.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5394],{2029:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"\u9644\u52a0\u5185\u5bb9/\u6709\u5173AI/nf1.21additionsaboutai","title":"\u6709\u5173AI","description":"\u7531\u4e8e\u73b0\u5982\u4ecaAI\u5728\u5b9e\u9645\u7684\u7f16\u7a0b\u73af\u5883\u4e2d\u5df2\u7ecf\u4e0d\u53ef\u6216\u7f3a\uff0c\u56e0\u6b64\u5728\u6b64\u63d0\u4f9b\u4e00\u4e9b\u4fbf\u4e8eAI\u7f16\u7a0b\u7684\u914d\u7f6e\u5efa\u8bae\u3002","source":"@site/tutorial/999-\u9644\u52a0\u5185\u5bb9/\u6709\u5173AI/index.md","sourceDirName":"999-\u9644\u52a0\u5185\u5bb9/\u6709\u5173AI","slug":"/nf1.21/additions/AboutAI","permalink":"/docs/tutorial/nf1.21/additions/AboutAI","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21additionsaboutai","slug":"/nf1.21/additions/AboutAI"},"sidebar":"tutorialSidebar","previous":{"title":"\u5982\u679c\u4f60\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\u5b9e\u5728\u6ca1\u529e\u6cd5\u5b8c\u6210\u6784\u5efa","permalink":"/docs/tutorial/nf1.21/additions/NotThatAccess"},"next":{"title":"NeoForge1.21\u5f00\u53d1\u6559\u7a0b","permalink":"/docs/tutorial/nf1.21"}}');var i=t(4848),s=t(8453);const o={id:"nf1.21additionsaboutai",slug:"/nf1.21/additions/AboutAI"},a="\u6709\u5173AI",d={},c=[];function l(e){const n={code:"code",h1:"h1",header:"header",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u6709\u5173ai",children:"\u6709\u5173AI"})}),"\n",(0,i.jsxs)(n.p,{children:["\u7531\u4e8e\u73b0\u5982\u4ecaAI\u5728\u5b9e\u9645\u7684\u7f16\u7a0b\u73af\u5883\u4e2d\u5df2\u7ecf\u4e0d\u53ef\u6216\u7f3a\uff0c\u56e0\u6b64\u5728\u6b64\u63d0\u4f9b\u4e00\u4e9b\u4fbf\u4e8eAI\u7f16\u7a0b\u7684\u914d\u7f6e\u5efa\u8bae\u3002\n\u9996\u5148\u5728gradle",(0,i.jsx)(n.code,{children:"\u540c\u6b65\u6240\u6709gradle\u9879\u76ee"}),"\u8fd9\u4e2a\u5237\u65b0\u6309\u94ae\u7684\u53f3\u8fb9\u7b2c\u4e8c\u4e2a\uff0c\u6709\u4e00\u4e2a",(0,i.jsx)(n.code,{children:"\u4e0b\u8f7d\u6e90\u4ee3\u7801"}),"\u6309\u94ae\uff0c\u5c06\u6e90\u7801\u4e0b\u8f7d\u5230\u672c\u5730\u3002\n\u8fd9\u6837\u907f\u514d\u4f7f\u7528idea\u81ea\u52a8\u53cd\u7f16\u8bd1\u7684class\u6587\u4ef6\uff0c\u4e0d\u4ec5\u66f4\u51c6\u786e\uff0c\u5e76\u4e14\u8fd9\u6837\u53ef\u4ee5\u8ba9AI\u80fd\u591f\u6210\u529f\u8bfb\u53d6\u5230\u6e90\u7801\u3002\n\u65e0\u8bba\u4f7f\u7528\u7684\u4ec0\u4e48IDE\u6765\u7f16\u5199\uff0cAI\u4f3c\u4e4e\u90fd\u65e0\u6cd5\u76f4\u63a5\u8bfb\u53d6\u5916\u90e8\u5e93\u7684jar\u5305\u4e2d\u7684\u6e90\u7801\uff0c\u4f46\u662f\u901a\u8fc7\u8fd9\u79cd\u65b9\u5f0f\uff0c\u81f3\u5c11\u53ef\u4ee5\u95f4\u63a5\u7684\u8ba9AI\u8bfb\u53d6\u5230\u6e90\u7801\u3002\n\u4e0b\u8f7d\u7684\u6e90\u7801\u8def\u5f84\u5982\u4e0b\uff1a\n",(0,i.jsx)(n.code,{children:".\\build\\moddev\\artifacts\\neoforge-{neoforge\u7248\u672c\u53f7}-merged.jar"}),"\uff08mc\u539f\u7248\u7684java\u4ee3\u7801\uff09\n",(0,i.jsx)(n.code,{children:".\\build\\moddev\\artifacts\\neoforge-{neoforge\u7248\u672c\u53f7}-client-extra-aka-minecraft-resources.jar"}),"\uff08mc\u539f\u7248\u7684\u8d44\u6e90\u5305/\u6570\u636e\u5305\uff09\n\u5982\u679c\u4f60\u4f7f\u7528vscode\u5e76\u4e14\u4f7f\u7528gradle\u63d2\u4ef6\uff0c\u5373\u4f7f\u6211\u975e\u5e38\u63a8\u8350\u4f60\u8fd8\u662f\u4f7f\u7528idea\uff0c\u4f46\u662f\u4f60\u8fd8\u662f\u53ef\u4ee5\u8bd5\u4e00\u4e0b\u8ba9AI\u5728\u5c1d\u8bd5\u8bfb\u53d6\u6e90\u7801\u65f6\uff0c\u7ed3\u675f\u672c\u6b21\u5bf9\u8bdd\u5e76\u5c06\u5b83\u5c1d\u8bd5\u8bfb\u53d6\u7684\u6e90\u7801\u8def\u5f84\u53ca\u6587\u4ef6\u540d\u8bf4\u51fa\u6765\n\u7136\u540e\u4f7f\u7528\u4e0a\u4e0b\u6587\u624b\u52a8\u63d0\u4f9b\u7ed9AI\u3002\n\u867d\u7136\u4f1a\u975e\u5e38\u9ebb\u70e6\u7e41\u7410\uff0c\u4f46\u4e5f\u4e0d\u5931\u4e3a\u4e00\u79cd\u89e3\u51b3\u529e\u6cd5\u3002"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.p,{children:"yhz_cake\u5411NeoForge1.21Tutorial-\u7b2c\u4e8c\u7ae0\u8865\u5145\u4e8e2026\u5e744\u67083\u65e5"}),"\n",(0,i.jsx)(n.p,{children:"MakerTechno\u5355\u72ec\u63d0\u53d6\u4e3a\u9644\u52a0\u6587\u7ae0\u4e8e2026\u5e744\u67084\u65e5"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Copyright \xa9 2026 yhz_cake. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,i.jsx)(n.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/99448bf2.4b4b03b8.js b/docs/assets/js/99448bf2.4b4b03b8.js
deleted file mode 100644
index fac9a04..0000000
--- a/docs/assets/js/99448bf2.4b4b03b8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[4075],{4084:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"\u7b2c\u56db\u7ae0/nf1.21ep4","title":"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)","description":"\u63d0\u793a","source":"@site/tutorial/4-\u7b2c\u56db\u7ae0/index.md","sourceDirName":"4-\u7b2c\u56db\u7ae0","slug":"/nf1.21/ep4","permalink":"/docs/tutorial/nf1.21/ep4","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep4","slug":"/nf1.21/ep4"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e09\u7ae0 \u57fa\u7840\u6982\u5ff5","permalink":"/docs/tutorial/nf1.21/ep3"},"next":{"title":"\u7b2c\u4e94\u7ae0 \u7b2c\u4e00\u4e2a\u65b9\u5757(Block)","permalink":"/docs/tutorial/nf1.21/ep5"}}');var o=r(4848),t=r(8453);const i={id:"nf1.21ep4",slug:"/nf1.21/ep4"},d="\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)",c={},a=[{value:"\u4fee\u6539\u914d\u7f6e",id:"\u4fee\u6539\u914d\u7f6e",level:3}];function l(n){const e={blockquote:"blockquote",code:"code",h1:"h1",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.header,{children:(0,o.jsx)(e.h1,{id:"\u7b2c\u56db\u7ae0-\u7b2c\u4e00\u4e2a\u7269\u54c1item",children:"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1(Item)"})}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["\u2139\ufe0f",(0,o.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u4e3a\u4e86\u80fd",(0,o.jsx)(e.strong,{children:"\u63d0\u524d\u4f53\u9a8c"}),"\u4e00\u4e0b\u628a\u81ea\u5df1\u5199\u7684\u7269\u54c1\u642c\u8fdb\u6e38\u620f\u7684\u5feb\u4e50\uff0c\u672c\u7ae0",(0,o.jsx)(e.strong,{children:"\u8df3\u8fc7"}),"\u4e86\u4e00\u4e9b\u5de5\u7a0b\u6587\u4ef6\u7684\u4ecb\u7ecd\u76f4\u63a5\u5f00\u59cb\u5236\u4f5c",(0,o.jsx)(e.strong,{children:"\u7269\u54c1"}),"\uff0c\u4e00\u4e9b\u989d\u5916\u5185\u5bb9\u6211\u4eec\u5c06\u4f1a\u5728",(0,o.jsx)(e.strong,{children:"\u7b2c\u4e94\u7ae0"}),"\u518d\u6b21\u4ecb\u7ecd\u3002"]}),"\n"]}),"\n",(0,o.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,o.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,o.jsx)(e.code,{children:"Minecraft1.21"}),(0,o.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,o.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,o.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,o.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,o.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,o.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,o.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["\u2139\ufe0f",(0,o.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,o.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,o.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,o.jsx)(e.h3,{id:"\u4fee\u6539\u914d\u7f6e",children:"\u4fee\u6539\u914d\u7f6e"}),"\n",(0,o.jsxs)(e.p,{children:["\u4f60\u9700\u8981\u6253\u5f00",(0,o.jsx)(e.code,{children:"gradle.properties"}),"\uff0c\u8fd9\u662f\u4e00\u4efd",(0,o.jsx)(e.strong,{children:"\u5c5e\u6027\u6587\u4ef6"}),"\uff0c\u6211\u4eec",(0,o.jsx)(e.strong,{children:"\u9700\u8981\u4fee\u6539"}),"\u7684\u6b63\u662f\u5b83\u3002"]}),"\n",(0,o.jsxs)(e.p,{children:["\u5728\u8fd9\u91cc\u6446\u4e00\u4efd\u7ecf\u8fc7\u7ffb\u8bd1\u548c\u989d\u5916\u6ce8\u91ca\u7684\u5c5e\u6027\u6587\u4ef6\uff0c\u8bf7",(0,o.jsx)(e.strong,{children:"\u6309\u7167\u6ce8\u91ca\u8bf4\u660e"}),"\u4e00\u6b65\u4e00\u6b65\u4fee\u6539\uff08\u4f60\u4e0d\u5fc5\u628a\u6211\u7684\u6ce8\u91ca\u4e5f\u6284\u4e0a\u53bb\uff09\uff1a"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-properties",metastring:'title="gradle.properties" showLineNumbers',children:"# \u8bbe\u7f6e\u7528\u4e8eGradle\u547d\u4ee4\u7684\u9ed8\u8ba4\u5185\u5b58\u3002\u53ef\u4ee5\u7531\u7528\u6237\u6216\u547d\u4ee4\u884c\u5c5e\u6027\u8986\u76d6\u3002\n\n# \u4f46\u662f\u8bf7\u4f60 \u4e0d\u8981\u4fee\u6539 \u524d\u534a\u90e8\u5206\u4e1c\u897f\uff0c\u6211\u4f1a\u5728\u6ce8\u91ca\u4e2d\u544a\u8bc9\u4f60\u54ea\u91cc\u5f00\u59cb\u9700\u8981\u4fee\u6539\u7684\u3002\n\n# \u8fd9\u91cc\u662f\u4e00\u4e9b\u57fa\u7840\u53c2\u6570\uff0c\u6bd4\u5982\u865a\u62df\u673a\u5806\u5185\u5b58\u5927\u5c0f\u3001\u5b88\u62a4\u3001\u7f13\u5b58\u4f7f\u7528\u4e4b\u7c7b\u7684\u3002\norg.gradle.jvmargs=-Xmx1G\norg.gradle.daemon=true\norg.gradle.parallel=true\norg.gradle.caching=true\norg.gradle.configuration-cache=true\n\n#\u4e0b\u9762\u4e24\u884c\u662f\u4f7f\u7528\u7f8a\u76ae\u7eb8\u6620\u5c04\u7684\u8bbe\u7f6e\u3002\u6620\u5c04\u662f\u4ec0\u4e48\uff1f\u6211\u540e\u9762\u4f1a\u8bb2\u89e3\u7684\u3002\n#\u8be6\u89c1 https://github.com/neoforged/ModDevGradle?tab=readme-ov-file#better-minecraft-parameter-names--javadoc-parchment\n# \u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd9\u91cc\u627e\u5230\u6700\u65b0\u7248\u672c: https://parchmentmc.org/docs/getting-started\nparchment_minecraft_version=1.21\nparchment_mappings_version=2024.07.28\n\n# \u73af\u5883\u5c5e\u6027\n# \u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u627e\u5230\u6700\u65b0\u7248\u672c: https://projects.neoforged.net/neoforged/neoforge\n# Minecraft\u7248\u672c\u5fc5\u987b\u4e0eNeo\u7248\u672c\u4e00\u81f4\u624d\u80fd\u83b7\u5f97\u6709\u6548\u7684\u5de5\u4ef6(\u5373\u6700\u7ec8\u4ea7\u51fa\u7684jar\u5305)\nminecraft_version=1.21.1\n\n# \u53ef\u4ee5\u4f7f\u7528Minecraft\u7684\u4efb\u4f55\u53d1\u5e03\u7248\u672c\u4f5c\u4e3aMinecraft\u7248\u672c\u8303\u56f4\u7684\u9650\u5236\u3002\n# \u5feb\u7167\u3001\u9884\u53d1\u5e03\u548c\u5019\u9009\u53d1\u5e03\u5219\u4e0d\u80fd\u4fdd\u8bc1\u6b63\u786e\u7684\u6392\u5e8f\uff0c\n# \u56e0\u4e3a\u5b83\u4eec\u4e0d\u9075\u5faa\u6807\u51c6\u7684\u7248\u672c\u63a7\u5236\u7ea6\u5b9a(\u4eba\u8bdd\uff1a\u65e0\u89c4\u77e9\u4e0d\u6210\u65b9\u5706\uff0c\u6ca1\u5546\u91cf\u597d\u7684\u7248\u672c\u7c7b\u578b\u5c31\u7b97\u9b54\u9171\u4e71\u6392\u5e8f\u4e5f\u65e0\u53ef\u539a\u975e)\n# \u554a\u53e6\u5916\u8fd9\u4e2a\u7248\u672c\u8303\u56f4\u662f\u9ad8\u4e2d\u6570\u5b66\u7684\u533a\u95f4\u7684\u5199\u6cd5\uff0c\u4f60\u81f3\u5c11\u5f97\u77e5\u9053\u4e00\u4e0b\u3002(\u4f60\u5e94\u8be5\u77e5\u9053\u7684\u5427\uff1f)\nminecraft_version_range=[1.21.1, 1.22)\n\n# Neo\u7248\u672c\u5fc5\u987b\u4e0eMinecraft\u7248\u672c\u4e00\u81f4\u624d\u80fd\u83b7\u5f97\u6709\u6548\u7684\u5de5\u4ef6(\u628a\u524d\u9762\u90a3\u53e5\u5012\u8fc7\u6765\u8bf4\u4e86\u4e00\u904d)\nneo_version=21.1.72\n\n# \u53ef\u4ee5\u4f7f\u7528Neo\u7684\u4efb\u4f55\u53d1\u5e03\u7248\u672c\u4f5c\u4e3aNeo\u7248\u672c\u8303\u56f4\u7684\u9650\u5236(\u8ddf\u5ff5\u7ecf\u4f3c\u7684)\nneo_version_range=[21.1.0,)\n\n# \u4f46\u662f\u53ea\u80fd\u4f7f\u7528FML\u7684\u4e3b\u8981\u7248\u672c\u4f5c\u4e3a\u52a0\u8f7d\u5668\u7248\u672c\u8303\u56f4\u7684\u9650\u5236\u3002\nloader_version_range=[4,)\n\n\n## \u6a21\u7ec4\u5c5e\u6027\n# \u6ce8\u610f\u5566\uff01\u4ece\u8fd9\u91cc\u5f00\u59cb\u8981 >>>\u9891\u7e41\u4fee\u6539<<< \u5566\uff01\n\n# \u4e0b\u9762\u8fd9\u4e2a\u662fmod\u7684\u552f\u4e00mod\u6807\u8bc6\u7b26\u3002\u5728\u82f1\u8bed\u533a\u57df\u8bbe\u7f6e\u4e2d\u5fc5\u987b\u5c0f\u5199\u3002\u5fc5\u987b\u7b26\u5408\u6b63\u5219\u8868\u8fbe\u5f0f[a-z][a-z0-9_]{1,63}\n# \u5fc5\u987b\u4e0e\u4f4d\u4e8e\u7528@Mod\u6ce8\u91ca\u7684mod\u4e3b\u7c7b\u4e2d\u7684String\u5e38\u91cf\u5339\u914d\u3002\n\n# \u610f\u601d\u5c31\u662f\u8bf4\u8fd9\u4e2amod_id\u662f\u4f60\u5199\u7684\u6a21\u7ec4\u7684\u552f\u4e00\u8eab\u4efd\u8bc1\uff0c\u4e0d\u80fd\u4e0e\u5176\u4ed6\u6a21\u7ec4\u51b2\u7a81(\u8fd9\u70b9\u4f60\u5012\u4e0d\u7528\u8fc7\u5ea6\u62c5\u5fc3\uff0c\n# \u4f46\u8bf7\u4e0d\u8981\u628a\u6211\u63d0\u4f9b\u7684\u793a\u4f8bmod_id\u5199\u4e0a\u53bb)\n# \u91cd\u70b9\u5728\u4e8emod_id\u540e\u9762\u7684\u5185\u5bb9\u53ea\u80fd\u586b\u5165\u5c0f\u5199\u7684\u82f1\u6587\u5b57\u7b26\u3001\u82f1\u6587\u4e0b\u5212\u7ebf\u548c\u6807\u51c6\u6570\u5b57\u3002\n# \u6211\u4eec\u540e\u9762\u8fd8\u4f1a\u5728\u6a21\u7ec4\u7684\u4e3b\u7c7b(\u5373\u6a21\u7ec4\u63a5\u5165MC\u7684\u4e00\u4e2a\u8d77\u70b9)\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u8fd9\u6837\u7684\u5e38\u91cf\uff0c\u4e24\u8005\u8981\u4e00\u6a21\u4e00\u6837\u3002\n# \u6bd4\u5982\u6211\u8981\u5199\u4e00\u4e2a\u5e9f\u571f\u98ce\u683c\u7684\u5de5\u4e1a\u6a21\u7ec4\uff0c\u6211\u7ba1\u5b83\u53eb\u201c\u5de5\u4e1a\u9057\u8ff9\u201d\uff0c\u82f1\u6587\u540d\u5c31\u53ebIndustrial Heritage\uff0c\n# \u90a3\u4e48\u6211\u7684mod_id\u5c31\u662f\u201cindustrial_heritage\u201d\u3002\nmod_id=examplemod\n\n# \u6a21\u7ec4\u7684\u540d\u5b57\uff0c\u8fd9\u4e2a\u662f\u7ed9\u73a9\u5bb6\u770b\u7684\uff0c\u4f1a\u663e\u793a\u5728mod\u754c\u9762\uff0c\u6240\u4ee5\u53ef\u4ee5\u5199\u4e2d\u6587\u548c\u7a7a\u683c\u4ec0\u4e48\u7684\u3002\nmod_name=Example Mod\n\n# \u6a21\u7ec4\u5e93\u6240\u9075\u5faa\u7684\u534f\u8bae\u3002\u5728\u8fd9\u91cc\u7ffb\u9605\u9002\u5408\u4f60\u7684\u534f\u8bae: https://choosealicense.com/. All Rights Reserved \u662f\u9ed8\u8ba4\u7684\u534f\u8bae\u3002\n# \u5982\u679c\u4f60\u4e0d\u4e86\u89e3\u6216\u4e0d\u60f3\u4e86\u89e3\u4ec0\u4e48\u662f\u534f\u8bae\uff0c\u4f60\u53ef\u4ee5\u4e0d\u7ba1\u8fd9\u91cc\u7684\u5185\u5bb9\u3002\nmod_license=All Rights Reserved\n\n# \u6a21\u7ec4\u7248\u672c\uff0c\u89c4\u8303\u89c1 https://semver.org/lang/zh-CN/\n# \u8fd9\u5c31\u662f\u4f60\u7684\u6a21\u7ec4\u7248\u672c\uff0c\u4f60\u53ef\u4ee5\u81ea\u5df1\u5b9a\u7248\u672c\uff0c\u4f46\u662f\u6211\u5efa\u8bae\u4f60\u770b\u770b\u7f51\u7ad9\u91cc\u201c\u5173\u4e8e\u8f6f\u4ef6\u7248\u672c\u7684\u5efa\u8bae-\u6458\u8981\u201d\u7684\u90e8\u5206\u3002\nmod_version=1.0.0\n\n# mod\u7684\u7ec4ID\u3002\u53ea\u5728\u4f5c\u4e3a\u5de5\u4ef6\u53d1\u5e03\u5230Maven\u5b58\u50a8\u5e93\u65f6\u624d\u7528\u5f97\u5230(\u4e5f\u786e\u5b9e\u5f88\u91cd\u8981)\u3002\n# \u8fd9\u5e94\u8be5\u4e0e\u7528\u4e8emod\u8d44\u6e90\u7684\u57fa\u672c\u5305\u540d\u76f8\u5339\u914d\uff0c\u610f\u601d\u662f\u4f60\u5f85\u4f1a\u9700\u8981\u5728\u4f60\u7684src\u4e0b\u9762\u6309\u987a\u5e8f\u5efa\u7acb\u8fd9\u4ee8\u6587\u4ef6\u5939\n# \u89c1 https://maven.apache.org/guides/mini/guide-naming-conventions.html\n# \u8fd9\u91cc\u586b\u5165\u7684\u5c31\u662f\u4f60\u7684\u4e09\u4e2a\u7ea7\u7684\u5305\u540d\uff0c\u4e5f\u5927\u6982\u662f\u4f60\u7684\u6a21\u7ec4\u4e3b\u7c7b\u5b58\u653e\u7684\u4f4d\u7f6e\u3002\n# \u4e5f\u5c31\u662f\u8bf4\uff0c\u4f60\u6700\u597d\u8fd8\u662f\u9075\u5faa\u4e09\u7ea7\u5012\u5199\u57df\u4f5c\u4e3a\u4f60\u7684\u5305\u540d\u7684\u903b\u8f91\u3002\u4f60\u5176\u5b9e\u4e5f\u53ef\u4ee5\u81ea\u5df1\u81ea\u7531\u5b9a\u4e49\u3002\n# \u6bd4\u5982\u4f60\u4e70\u4e86\u4e2a\u53ebshits.coding.store\u7684\u57df\u540d\uff0c\u90a3\u4f60\u53ef\u4ee5\u5199\u6210store.coding.shit\n# \u6bd4\u5982\u6211\uff0c\u6211\u6709\u4e00\u4e2aGitPage\uff0c\u662fmakertechno.github.io\uff0c\u90a3\u4e48\u6211\u53ef\u4ee5\u5199\u6210github.makertechno.industrialheritage\n# \u5176\u5b9e\uff0c\u6211\u66f4\u559c\u6b22\u5199\u6210 none.maker.industrialheritage \uff0c\u6bd5\u7adfgithub\u4e5f\u4e0d\u662f\u6211\u5f00\u7684\u3002\nmod_group_id=com.example.examplemod\n# \u6a21\u7ec4\u4f5c\u8005. \u8fd9\u662f\u4f1a\u663e\u793a\u5230\u6a21\u7ec4\u5217\u8868\u7684\u8bf4\u660e\u4e2d\u7684\nmod_authors=\u4f60\u7684\u540d\u5b57, \u522b\u4eba\u7684\u540d\u5b57...\n# \u6a21\u7ec4\u63cf\u8ff0\uff0c\u662f\u4e00\u4e2a\u591a\u884c\u7684\u4ecb\u7ecd\u4f60\u6a21\u7ec4\u7684\u6587\u672c\u3002\u901a\u8fc7\\n\u8868\u793a\u6362\u884c\u3002\nmod_description=Example mod description.\\nNewline characters can be used and will be replaced properly.\n\n"})}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u5f88\u91cd\u8981"}),"\u7684\u4e00\u70b9\u5c31\u662f\uff0c\u8fd9\u4e9b\u5185\u5bb9\u4e00\u90e8\u5206\u4f1a\u5e94\u7528\u5230\u5f00\u53d1\u73af\u5883\u7684\u8def\u5f84\u903b\u8f91\u4e2d\uff0c\u4e5f\u6709\u4e00\u90e8\u5206\u4f1a\u5e94\u7528\u5230\u4f60\u6700\u7ec8\u5728\u6e38\u620f\u5185\u770b\u5230\u7684\u6a21\u7ec4\u4ecb\u7ecd\u4e2d\u3002"]}),"\n",(0,o.jsx)(e.hr,{}),"\n",(0,o.jsx)(e.p,{children:"MakerTechno\u4e8e2025\u5e746\u67082\u65e5\u8d77\u7a3f\u5e76\u6682\u65f6\u4e2d\u6b62"}),"\n",(0,o.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,o.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.strong,{children:"Copyright \xa9 2026 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,o.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function h(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(l,{...n})}):l(n)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/a30e6b04.dab6b815.js b/docs/assets/js/a30e6b04.803c78ec.js
similarity index 99%
rename from docs/assets/js/a30e6b04.dab6b815.js
rename to docs/assets/js/a30e6b04.803c78ec.js
index 2304c01..9ba5e22 100644
--- a/docs/assets/js/a30e6b04.dab6b815.js
+++ b/docs/assets/js/a30e6b04.803c78ec.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[4502],{425:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java\u8def\u5f84-f5170a22bb379516188ad3355f240a11.png"},2114:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762-051d5fdd00c4441b2b2725dfc0c844d1.png"},3189:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava-c9b29c36cc892e1d75399f539dfb4c62.png"},3725:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Github\u4e0a\u7684NeoGradle\u5e93-0fc403ccea3e56ddc490a3e3bdd12c5f.png"},3906:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Path\u6dfb\u52a0Java-3893ca03d7c19a8ee97c37ec9d598b0a.png"},3954:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fd0\u884c\u680f\u5728\u8fd9\u91cc-15308dbaec13e7025f3f0c62fb1c537c.png"},5086:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java21\u8def\u5f84-15acc474f38d6791ee5cb973d5f70950.png"},5533:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},5609:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>h,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>t});const r=JSON.parse('{"id":"NeoForge1.21Tutorial/\u7b2c\u4e8c\u7ae0/nf1.21ep2","title":"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa","description":"\u63d0\u793a","source":"@site/tutorial/1-NeoForge1.21Tutorial/2-\u7b2c\u4e8c\u7ae0/index.md","sourceDirName":"1-NeoForge1.21Tutorial/2-\u7b2c\u4e8c\u7ae0","slug":"/nf1.21/ep2","permalink":"/docs/tutorial/nf1.21/ep2","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep2","slug":"/nf1.21/ep2"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08","permalink":"/docs/tutorial/nf1.21/ep1"},"next":{"title":"\u7b2c\u4e09\u7ae0 \u57fa\u7840\u6982\u5ff5","permalink":"/docs/tutorial/nf1.21/ep3"}}');var i=s(4848),l=s(8453);const d={id:"nf1.21ep2",slug:"/nf1.21/ep2"},c="\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa",h={},t=[{value:"\u51c6\u5907\u5de5\u4f5c",id:"\u51c6\u5907\u5de5\u4f5c",level:2},{value:"\u5b89\u88c5IntelliJ IDEA",id:"\u5b89\u88c5intellij-idea",level:3},{value:"\u5b89\u88c5JDK",id:"\u5b89\u88c5jdk",level:3},{value:"Linux",id:"linux",level:4},{value:"MacOS",id:"macos",level:4},{value:"Windows",id:"windows",level:4},{value:"OpenJDK",id:"openjdk",level:5},{value:"OracleJDK",id:"oraclejdk",level:5},{value:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93",id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",level:3},{value:"\u989d\u5916\u7684\u8bbe\u7f6e",id:"\u989d\u5916\u7684\u8bbe\u7f6e",level:2},{value:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"\u5f00\u59cb\u6784\u5efa",id:"\u5f00\u59cb\u6784\u5efa",level:2},{value:"\u5bfc\u5165\u9879\u76ee",id:"\u5bfc\u5165\u9879\u76ee",level:3},{value:"\u6784\u5efa\u8be6\u89e3",id:"\u6784\u5efa\u8be6\u89e3",level:3},{value:"Gradle\u662f\u4ec0\u4e48",id:"gradle\u662f\u4ec0\u4e48",level:4},{value:"\u8bbe\u7f6eJava\u7248\u672c",id:"\u8bbe\u7f6ejava\u7248\u672c",level:4},{value:"\u6dfb\u52a0\u63d2\u4ef6",id:"\u6dfb\u52a0\u63d2\u4ef6",level:4},{value:"\u8bbe\u7f6e\u4ee3\u7406",id:"\u8bbe\u7f6e\u4ee3\u7406",level:4},{value:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",level:4},{value:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",level:4},{value:"\u9047\u5230\u56f0\u96be",id:"\u9047\u5230\u56f0\u96be",level:4},{value:"\u6d4b\u8bd5\u7a0b\u5e8f",id:"\u6d4b\u8bd5\u7a0b\u5e8f",level:3},{value:"\u7ae0\u672b\u5c0f\u8bb0",id:"\u7ae0\u672b\u5c0f\u8bb0",level:2}];function o(n){const e={a:"a",blockquote:"blockquote",code:"code",del:"del",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"\u7b2c\u4e8c\u7ae0-\u73af\u5883\u6784\u5efa",children:"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u4e00\u73af\u8282\u4e2d\u7684\u90e8\u5206\u4fe1\u606f\u4f60\u5e94\u8be5\u5728\u4e4b\u524d\u7684\u7f16\u7a0b\u5b66\u4e60\u4e2d\u6709\u6240\u4e86\u89e3\u3002\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u5b89\u88c5IDEA\u548cJDK\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E9%A2%9D%E5%A4%96%E7%9A%84%E8%AE%BE%E7%BD%AE",children:"\u73af\u5883\u8bbe\u7f6e"})]}),"\uff1b\u5982\u679c\u4f60\u5df2\u7ecf\u8bbe\u7f6e\u8fc7Java\u73af\u5883\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA",children:"\u6784\u5efa"})]}),"\uff1b\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u6784\u5efa\uff0c\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7\u672c\u7ae0\u8282"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),(0,i.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,i.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u51c6\u5907\u5de5\u4f5c",children:"\u51c6\u5907\u5de5\u4f5c"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5de5\u6b32\u5584\u5176\u4e8b\uff0c\u5fc5\u5148\u5229\u5176\u5668\u3002"}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e0b\u9762\u7684\u6b65\u9aa4\u6d89\u53ca\u5f88\u591a\u7f51\u7edc\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u540c\u65f6\u8fdb\u884c"}),"\u591a\u4e2a\u6b65\u9aa4\u7684\u4e0b\u8f7d\u548c\u5b89\u88c5\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5intellij-idea",children:"\u5b89\u88c5IntelliJ IDEA"}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u662f\u4e00\u6b3e\u5f3a\u5927\u7684",(0,i.jsx)(e.strong,{children:"\u4ee3\u7801\u7f16\u8f91\u5668"}),"\uff0c\u5bf9Java\u548cKotlin\u7684\u652f\u6301\u5c24\u4e3a\u7a81\u51fa\u3002\u4f7f\u7528IDEA\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u51cf\u5c11\u5f88\u591a\u4e0d\u5fc5\u8981\u7684\u9879\u76ee\u8bbe\u7f6e\u5de5\u4f5c"}),"\uff0c\u4e0d\u8fc7\u5982\u679c\u4f60\u975e\u8981\u7528Eclipse\u6216\u8005VS Code\uff0c\u4e5f\u4e0d\u662f\u4e0d\u884c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u5206\u4e3a",(0,i.jsx)(e.strong,{children:"\u4e13\u4e1a\u7248"}),"\u548c",(0,i.jsx)(e.strong,{children:"\u793e\u533a\u7248"}),"\uff0c\u4e24\u8005\u529f\u80fd\u533a\u522b\u4e0d\u5927\uff0c\u9009\u62e9\u4efb\u4f55\u4e00\u79cd",(0,i.jsx)(e.strong,{children:"\u90fd\u4e0d\u4f1a"}),"\u4e0e\u672c\u6559\u7a0b\u63d0\u4f9b\u7684\u4efb\u610f\u4e00\u4e2a\u6b65\u9aa4\u51b2\u7a81\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u4e13\u4e1a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u6536\u8d39"}),"\u7684\uff0c\u793e\u533a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u4e0d\u6536\u8d39"}),"\u7684\u3002\u4e13\u4e1a\u7248\u53ea\u6709\u4e00\u4e9b\u4f60\u4e00\u822c\u7528\u4e0d\u5230\u7684\u9ad8\u7ea7\u529f\u80fd\uff0c\u6240\u4ee5\u6ca1\u6709IDEA\u7684\u4e0b\u793e\u533a\u7248\u5c31\u884c\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dIDEA\uff0c\u6ce8\u610f\u793e\u533a\u7248(Community Edition)",(0,i.jsx)(e.strong,{children:"\u5728\u9875\u9762\u4e0b\u90e8"}),"\uff0c\u4f60\u770b\u5230\u7684\u7b2c\u4e00\u4e2a\u662f\u4e13\u4e1a\u7248(Ultimate)\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/?section=windows",children:"Download IntelliJ IDEA \u2013 The Leading Java and Kotlin IDE"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA",src:s(7062).A+"",width:"1912",height:"697"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u7ecf\u8fc7\u6211\u6d4b\u8bd5\uff0c\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Windows7"}),"\u7cfb\u7edf\u7684\u5927\u90e8\u5206\u7535\u8111",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u542f\u52a8"}),"\u5b89\u88c5\u540e\u7684",(0,i.jsx)(e.strong,{children:"2024\u7248"}),"IDEA\u3002\u5982\u679c\u4f60\u4f7f\u7528Windows7\uff0c\u8bf7\u5728\u8fd9\u91cc\u5bfb\u627e\u5e76\u4e0b\u8f7d",(0,i.jsx)(e.strong,{children:"2023.1"}),"\u7684IDEA Community\u7248\uff1a ",(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/other.html",children:"Other Versions - IntelliJ IDEA"})]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5b89\u88c5\u7684\u65f6\u5019\uff0c",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u4fee\u6539\u5b89\u88c5\u8def\u5f84\u5230\u522b\u7684\u5b58\u50a8\u76d8\u91cc\u3002",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u5b89\u88c5\u5230\u4f60\u65b0\u5efa\u7684\u4e00\u4e2a\u547d\u540d\u4e3a\u201cIDEA\u201d\u7684\u6587\u4ef6\u5939\u91cc\uff0c\u8fd9\u6837",(0,i.jsx)(e.strong,{children:"\u66f4\u65b9\u4fbf\u7ba1\u7406"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u521d\u6b21\u542f\u52a8IDEA\uff0c\u4f1a\u5f39\u51fa\u7528\u6237\u534f\u8bae\u8bb8\u53ef\u548c\u534f\u52a9\u8f6f\u4ef6\u6539\u8fdb\u7684\u5171\u4eab\u4fe1\u606f\u8bb8\u53ef\uff0c\u65b0\u7248\u672c\u4f1a\u5e2e\u52a9\u4f60\u8bbe\u7f6e\u8bed\u8a00\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u542f\u52a8IDEA\u540e\uff0c\u4e0d\u8981\u6025\u7740\u65b0\u5efa\u9879\u76ee(\u4e5f\u6839\u672c\u7528\u4e0d\u5230\u65b0\u5efa)\uff0c\u6211\u4eec\u8fd8",(0,i.jsx)(e.strong,{children:"\u7f3a\u5c11\u4e00\u4e2a\u5173\u952e\u6b65\u9aa4"}),"\u3002"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5jdk",children:"\u5b89\u88c5JDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u4eec\u5f00\u53d1\u7684\u6a21\u7ec4\u662f",(0,i.jsx)(e.strong,{children:"\u9488\u5bf9Minecraft1.21"}),"\u7684\uff0cNeoForge\u5bf9\u6b64\u63d0\u4f9b\u7684",(0,i.jsx)(e.strong,{children:"Gradle\u6784\u5efa"}),"\u8981\u6c42\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Java21"}),"\u3002\u6240\u4ee5\uff0c\u7b2c\u4e00\u6b65\uff0c\u5b89\u88c5\u4e00\u4e2a21\u7248\u672c\u7684JDK\u5427\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["JDK\u5206\u4e3a\u4e24\u79cd\uff0cOpenJDK\u548cOracleJDK\uff0c\u6709\u5174\u8da3\u7684\u53ef\u4ee5\u5728",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/qq_33326733/article/details/138875513",children:"\u8fd9\u7bc7\u6587\u7ae0"}),"\u8fdb\u884c\u4e86\u89e3\uff0c\u5728\u6b64\u6211\u4eec\u63a8\u8350\u4f7f\u7528OpenJDK"]}),"\n",(0,i.jsx)(e.h4,{id:"linux",children:"Linux"}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6587\u4f5c\u8005\u4e3b\u8981\u4f7f\u7528Windows10\u7cfb\u7edf\uff0c\u4e0d\u4f1a\u5bf9Linux\u7cfb\u7edf\u8fdb\u884c\u8fc7\u591a\u6307\u5bfc\u3002\u4ee5\u4e0b\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4ee5\u53ca\u540e\u9762\u7684\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u8bf7\u81ea\u884c\u9605\u8bfb",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/u013250861/article/details/131141098",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsx)(e.h4,{id:"macos",children:"MacOS"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u53c2\u8003",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/Lwehne/article/details/135867512",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u54c7\u662f\u82f9\u679c\uff0c\u7a00\u5ba2\u6b38\uff01\u6211\u865a\u62df\u673a\u8dd1XCode\u7684iOS Simulator\u592a\u5361\u4e86\uff0c\u628a\u4f60\u7684\u501f\u6211\u7528\u51e0\u5929(\u6ed1\u7a3d)"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"windows",children:"Windows"}),"\n",(0,i.jsx)(e.h5,{id:"openjdk",children:"OpenJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),".0.2\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dzip\u5305\u5373\u53ef\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://jdk.java.net/archive/",children:"Archived OpenJDK GA Releases"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622204204167",src:s(5999).A+"",width:"1210",height:"948"})}),"\n",(0,i.jsx)(e.h5,{id:"oraclejdk",children:"OracleJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),"\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dexe\u5b89\u88c5\u5305\u6216msi\u5b89\u88c5\u5305\u90fd\u53ef\u4ee5\uff0c\u4f46\u662f\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.oracle.com/java/technologies/downloads/#java21",children:"Java Downloads (JDK21 for Windows) | Oracle"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava",src:s(3189).A+"",width:"1912",height:"792"})}),"\n",(0,i.jsx)(e.p,{children:"\u4e0b\u8f7d\u5b8c\u6210\u540e\uff0c\u53cc\u51fb\u5b89\u88c5\u5305\uff0c\u6309\u7167\u5b89\u88c5\u5411\u5bfc\u63d0\u793a\u5b89\u88c5(\u4e0d\u5efa\u8bae\u8c03\u6574\u4efb\u4f55\u53ef\u8c03\u53c2\u6570\uff0c\u76f4\u63a5Next\u5373\u53ef)"}),"\n",(0,i.jsx)(e.h3,{id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",children:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93"}),"\n",(0,i.jsx)(e.p,{children:"\u4e3a\u4e86\u5b8c\u6210\u9879\u76ee\u7684\u6784\u5efa\u5e76\u5f15\u5165Minecraft\u73af\u5883\uff0c\u6211\u4eec\u9700\u8981\u4e0b\u8f7dNeoForge\u7684\u6784\u5efa\u9879\u76ee\u5e93\u5e76\u89e3\u538b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u76ee\u524d\u6709\u4e24\u79cd\u6784\u5efa\u5e93\u4f9b\u5f00\u53d1\u8005\u9009\u62e9\uff1a",(0,i.jsx)(e.strong,{children:"ModDevGradle"}),"\u548c",(0,i.jsx)(e.strong,{children:"NeoGradle"}),"\uff0c\u4e24\u8005",(0,i.jsx)(e.strong,{children:"\u533a\u522b\u4e0d\u5927"}),"\uff0c\u5b83\u4eec",(0,i.jsx)(e.strong,{children:"\u90fd\u662fMod Developer Kit(MDK)"}),"\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u672c\u6559\u7a0b\u4f7f\u7528ModDevGradle"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u5bf9\u4e8e\u5982\u4f55\u51c6\u5907\u6784\u5efa\uff0cNeoForge\u7684\u6587\u6863\u662f\u5982\u6b64\u89e3\u91ca\u7684\uff1a"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["Open the Mod Developer Kit (MDK) (either ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-ModDevGradle",children:"ModDevGradle"})," or ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-NeoGradle",children:"NeoGradle"}),') GitHub repository, click "Use this template" and clone the newly-created repository to your local machine.',"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"If you do not want to use GitHub, or if you want to get the template for an older commit, you can also download the ZIP of the repository (under Code -> Download ZIP) and extract it."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e5f\u5c31\u662f\u8bf4\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u76f4\u63a5"}),"\u5728GitHub\u4e0a",(0,i.jsx)(e.strong,{children:"\u521b\u5efa"}),"\u4e00\u4e2a\u4ee5MDK\u4e3a\u6a21\u677f\u7684\u9879\u76ee\uff0c\u518d\u901a\u8fc7IDEA",(0,i.jsx)(e.strong,{children:"\u514b\u9686"}),"\u5230\u672c\u5730\u3002\u8fd9\u4f1a\u5bfc\u81f4\u4f60\u7684\u9879\u76ee\u4e0a\u51fa\u73b0\u201d\u4f7f\u7528xxx\u4e3a\u6a21\u677f\u201c\u7684\u6807\u8bc6\u3002\u5f53\u7136\u4f60",(0,i.jsx)(e.strong,{children:"\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u4f7f\u7528"}),"GitHub\u7684\u6a21\u677f\u9879\u76ee\uff0c\u76f4\u63a5\u70b9\u51fbCode\u6309\u94ae\u7136\u540e",(0,i.jsx)(e.strong,{children:"\u4e0b\u8f7dzip\u5230\u672c\u5730"}),"(\u6211\u7ecf\u5e38\u8fd9\u4e48\u5e72)\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u7a0d\u7b49\u4e00\u4e0b\uff01\u4f60\u662f\u5728\u5f00\u53d11.21.x\u5417\uff1f\u5982\u679c\u662f\u8fd9\u6837\uff0c\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u4f5c\u4e3a\u53c2\u8003"}),"\uff01\u8fd9\u91cc\u7ed9\u51fa\u7684\u94fe\u63a5",(0,i.jsx)(e.strong,{children:"\u5168\u90fd\u6307\u54111.21\u800c\u4e0d\u662f1.21.x"}),"\uff01\u5982\u679c\u4f60\u8981\u4e0b\u8f7d1.21.x\u7684MDK\u5305\uff0c\u8bf7\u5728",(0,i.jsx)(e.a,{href:"https://github.com/orgs/NeoForgeMDKs/repositories?type=all",children:"\u8fd9\u91cc"}),"\u9009\u62e9\u5bf9\u5e94\u7248\u672c\u548c\u5bf9\u5e94\u6784\u5efa\u5e93\u4e0b\u8f7d\uff01\u4e0d\u540c\u7248\u672c\u95f4\u4f1a",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff01"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Github\u4e0a\u7684NeoGradle\u5e93",src:s(3725).A+"",width:"1564",height:"718"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"GitHub\u5728\u56fd\u5185\u7684\u8bbf\u95ee\u5e76\u4e0d\u7a33\u5b9a\u3002\u5982\u679c\u4f60\u9047\u5230\u7f51\u7edc\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u4e0d\u662f\u5e94\u8be5\u53bb\u627e\u627e\u4ec0\u4e48\u89e3\u51b3\u65b9\u6848\u5462\uff1f(\u54b3\u54b3)"}),"\n",(0,i.jsx)(e.p,{children:"ps: \u8bf7\u9075\u5b88\u56fd\u5bb6\u6cd5\u5f8b\u89c4\u5b9a\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u989d\u5916\u7684\u8bbe\u7f6e",children:"\u989d\u5916\u7684\u8bbe\u7f6e"}),"\n",(0,i.jsx)(e.h3,{id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u8fd0\u884c\u5f00\u53d1\u73af\u5883\u65f6\uff0c\u6211\u4eec\u7ecf\u5e38\u9047\u5230\u4e00\u4e9b\u5173\u4e8e\u7f16\u8bd1\u5668",(0,i.jsx)(e.strong,{children:"\u7248\u672c"}),"\u7684\u5c0f\u95ee\u9898\u3002\u8b6c\u5982\u4f60\u4e3a\u4e86\u548c\u670b\u53cb\u73a9\u8d5b\u6587\u79d1\u6280\u6574\u5408\u5305\u800c\u540c\u65f6\u5b89\u88c5\u4e86JDK8\u3001\u4e3a\u4e86\u5de5\u4f5c\u4f7f\u7528JDK11\uff0c\u4ea6\u6216\u662f\u5728\u4e4b\u524d\u7684\u5b66\u4e60\u4e2d\u4f7f\u7528\u4e86JDK23\u7b49\uff0cIDEA\u548cPCL2\u81ea\u7136\u4f1a",(0,i.jsx)(e.strong,{children:"\u5e2e\u4f60\u9009\u62e9\u5408\u9002\u7684Java\u7248\u672c"}),"\u3002\u4f46\u662f\uff0c\u6211\u4eec\u7684Gradle\u548ccmd\u5c31",(0,i.jsx)(e.strong,{children:"\u6ca1\u8fd9\u4e48\u806a\u660e"}),"\u3002\u56e0\u6b64\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf"}),"\u6210\u4e3a\u4e86\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5fc5\u4e0d\u53ef\u5c11"}),"\u7684\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u6309\u4e0bWin+R"}),"\u6253\u5f00\u8fd0\u884c\uff0c\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u540e",(0,i.jsxs)(e.strong,{children:["\u6309\u4f4fCtrl+Shift(\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u6253\u5f00)",(0,i.jsx)(e.strong,{children:"\u5e76\u56de\u8f66\uff0c\u5141\u8bb8\u7ba1\u7406\u5458\u6743\u9650\u7684\u63d0\u793a\u540e\uff0c\u6253\u5f00"}),"\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u7a97\u53e3"]}),"\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-bash",children:"rundll32 sysdm.cpl,EditEnvironmentVariables\n"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u5176\u5b9e",(0,i.jsx)(e.strong,{children:"\u7b49\u6548\u4e8e"}),"\uff1a\u53f3\u952e\u6b64\u7535\u8111->\u70b9\u51fb\u5c5e\u6027->\u70b9\u51fb\u4fa7\u8fb9\u201c\u9ad8\u7ea7\u7cfb\u7edf\u8bbe\u7f6e\u201d->(\u6743\u9650\u8ba4\u8bc1)->\u70b9\u51fb\u201c\u73af\u5883\u53d8\u91cf\u201d"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u4f1a\u770b\u5230\u4e24\u4e2a\u680f\u76ee\uff0c\u8bf7\u5728",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf\u680f\u76ee"}),"\u91cc\u8fdb\u884c\u64cd\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u201c\u73af\u5883\u53d8\u91cf\u201d\u7684\u65b0\u5efa\u7b49\u6309\u94ae",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u70b9\u51fb"}),"\uff0c\u8bf4\u660e\u4f60",(0,i.jsx)(e.strong,{children:"\u672a\u8d4b\u4e88\u7ba1\u7406\u5458\u6388\u6743"}),"\u6216",(0,i.jsx)(e.strong,{children:"\u6743\u9650\u4e0d\u591f"}),"\u3002\u8fd9\u79cd\u60c5\u51b5\u4e0b",(0,i.jsx)(e.strong,{children:"\u8bf7\u6309\u7167\u201c\u7b49\u6548\u4e8e\u201d\u4e2d\u7684\u6b65\u9aa4\u64cd\u4f5c"}),"\uff0c\u6216\u8054\u7cfb\u8bbe\u5907\u7ba1\u7406\u5458\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u65b0\u5efa\u201d\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u6846\u4e2d\u7684\u201d\u53d8\u91cf\u540d\u201c\u5904\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA21_HOME"}),"\uff0c\u5728\u53d8\u91cf\u503c\u8f93\u5165\u4f60\u5b89\u88c5JDK\u7684\u6587\u4ef6\u5939\u4f4d\u7f6e\uff0c\u5982\u679c\u4f60\u6ca1\u6539\u8fc7\uff0c\u4e00\u822c\u53ef\u4ee5\u5728",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java"}),"\u7684\u5730\u65b9\u627e\u5230\u5b83\u3002\u6211\u7684\u53d8\u91cf\u503c\u662f",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java\\jdk-21"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java21\u8def\u5f84",src:s(5086).A+"",width:"1062",height:"310"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u6309\u94ae\uff0c\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u518d\u6b21\u70b9\u51fb\u201c\u65b0\u5efa\u201d\uff0c\u53d8\u91cf\u540d\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA_HOME"}),"\uff0c\u53d8\u91cf\u503c\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA21_HOME%"}),"\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5c11\u4e86\u767e\u5206\u53f7"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java\u8def\u5f84",src:s(425).A+"",width:"1065",height:"395"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u7ffb\u627e\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf"}),"\uff0c\u627e\u5230\u5e76\u53cc\u51fb\u201c",(0,i.jsx)(e.strong,{children:"Path"}),'"\u8fd9\u4e2a\u503c\uff0c\u6253\u5f00\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u70b9\u51fb\u73af\u5883\u53d8\u91cf\u7684\u201c\u65b0\u5efa\u201d\uff0c\u586b\u5165',(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u5e76\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u5e76\u9000\u51fa\u7f16\u8f91\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f7f\u7528Windows7\u7684\u7528\u6237",(0,i.jsx)(e.strong,{children:"\u5e76\u6ca1\u6709"}),"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u7684\u5355\u72ec\u7a97\u53e3\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53cc\u51fb\u4f1a\u5f39\u51fa\u666e\u901a\u7684\u7cfb\u7edf\u53d8\u91cf\u7f16\u8f91\u3002\u8bf7",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5220\u9664"}),"\u53d8\u91cf\u503c\u7684\u4efb\u4f55\u5185\u5bb9\uff01\u5728\u7ed3\u5c3e\u5904\u6dfb\u52a0\u4e00\u4e2a\u82f1\u6587\u5206\u9694\u7b26",(0,i.jsx)(e.code,{children:";"}),"\uff0c\u5e76\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u70b9\u51fb\u201c\u786e\u8ba4\u201d\u5b8c\u6210\u7f16\u8f91"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u4f60\u7684Path\u91cc\u9762",(0,i.jsx)(e.strong,{children:"\u5df2\u7ecf\u6709"}),"\u7c7b\u4f3c\u914d\u7f6e\u4e86\uff0c\u4f60\u5c31\u4e0d\u9700\u8981\u8fdb\u884c\u8fd9\u6b65\u4e86\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Path\u6dfb\u52a0Java",src:s(3906).A+"",width:"1116",height:"643"})}),"\n",(0,i.jsx)(e.h3,{id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u5b89\u88c5IDEA\u7684\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u201c",(0,i.jsx)(e.strong,{children:"\u9009\u62e9\u8bed\u8a00"}),"\u201d\u7684\u6b65\u9aa4\uff0c\u5e76\u4e14\u4e2d\u6587\u6b63\u5e38\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7"}),"\u8fd9\u90e8\u5206"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["2024\u53ca\u4ee5\u524d\u7684IDEA\u7684\u9ed8\u8ba4\u8bed\u8a00\u662f",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\uff0c\u4e0d\u8fc7\u4e0d\u7528\u62c5\u5fc3\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u5b89\u88c5\u4e2d\u6587\u63d2\u4ef6"}),"\u7684\u65b9\u6cd5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd0\u884cIDEA\uff0c\u5728\u7a97\u53e3\u4e2d\u6309\u4e0b\u7ec4\u5408\u952e",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u6253\u5f00\u8bbe\u7f6e\uff0c\u5728\u5de6\u4fa7\u680f\u76ee\u9009\u62e9\u201c",(0,i.jsx)(e.strong,{children:"Plugins"}),"\u201d\uff0c\u5728Marketplace\u91cc",(0,i.jsx)(e.strong,{children:"\u641c\u7d22\u201cChinese\u201d"}),"\uff0c\u5b89\u88c5",(0,i.jsx)(e.strong,{children:"\u7b80\u4f53\u4e2d\u6587"}),"\u8bed\u8a00\u5305\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762",src:s(2114).A+"",title:"\u63d2\u4ef6\u7ba1\u7406\u957f\u8fd9\u4e2a\u6837\u5b50",width:"1247",height:"897"})}),"\n",(0,i.jsx)(e.p,{children:"\u5b89\u88c5\u5b8c\u6210\u540e\uff0cIDEA\u4f1a\u63d0\u793a\u4f60\u91cd\u65b0\u542f\u52a8IDEA\u7a0b\u5e8f\uff0c\u70b9\u51fbEnter\u81ea\u52a8\u91cd\u542f\u6216\u624b\u52a8\u5173\u95ed\u518d\u5f00\u542f\u90fd\u53ef\u4ee5\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"\u5f00\u59cb\u6784\u5efa",children:"\u5f00\u59cb\u6784\u5efa"}),"\n",(0,i.jsx)(e.h3,{id:"\u5bfc\u5165\u9879\u76ee",children:"\u5bfc\u5165\u9879\u76ee"}),"\n",(0,i.jsx)(e.p,{children:"\u7ecf\u8fc7\u4e86\u4e00\u6bb5\u65f6\u95f4\u7684\u51c6\u5907\uff0c\u6211\u4eec\u5df2\u7ecf\u5b8c\u6210\u4e86\u521d\u6b65\u7684\u51c6\u5907\uff0c\u53ef\u4ee5\u6b63\u5f0f\u5f00\u59cb\u6784\u5efa\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6b63\u5de7\uff0c\u6211\u624b\u5934\u6709\u4e9b\u8ba1\u5212\u7684\u6a21\u7ec4\uff0c\u5c31\u968f\u7740\u5199\u6a21\u7ec4\u4e00\u4e00\u4ecb\u7ecd\u600e\u4e48\u5199\u5427\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u524d\u6587\u9009\u62e9\u4e86",(0,i.jsx)(e.strong,{children:"\u5728GitHub\u4e0a\u8fdb\u884c\u514b\u9686"}),"\uff0c\u53ea\u9700\u8981\u5728\u672c\u5730",(0,i.jsx)(e.strong,{children:"VCS"}),"\u514b\u9686\u8fc7\u6765\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u9009\u62e9\u4e0b\u8f7dzip\u6587\u4ef6\uff0c\u9996\u5148\uff0c\u8981\u628a\u4e0b\u8f7d\u597d\u7684\u538b\u7f29\u5305\u6574\u4e2a",(0,i.jsx)(e.strong,{children:"\u89e3\u538b"}),"\u6210\u4e3a\u4e00\u4e2a\u5355\u72ec\u7684\u9879\u76ee\u6587\u4ef6\u5939(\u6211\u4f1a\u628a\u89e3\u538b\u5185\u5bb9\u585e\u5230Projects\u6587\u4ef6\u5939\u91cc)\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u538b\u7f29\u5305\u5185\u5bb9",src:s(6121).A+"",width:"1321",height:"738"})}),"\n",(0,i.jsxs)(e.p,{children:["\u7136\u540e\uff0c\u5c06\u8fd9\u4e2a\u6587\u4ef6\u5939\u540d\u79f0\u6539\u6210\u52a0\u8f7d\u5668\u540d+\u6e38\u620f\u7248\u672c+\u6211\u4eec\u81ea\u5df1\u5b9a\u4e49\u7684\u6a21\u7ec4\u540d(",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5e26\u7a7a\u683c\u3001\u7279\u6b8a\u7b26\u53f7\u7b49"}),")\uff0c\u5e76\u5728IDEA\u4e2d\u70b9\u51fb\u201c\u6253\u5f00\u9879\u76ee\u201d\uff0c\u9009\u62e9\u6211\u4eec\u521a\u521a\u89e3\u538b\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e00\u6b65\u5176\u5b9e\u5e76\u4e0d\u91cd\u8981\uff0c\u4f46\u662f\u4f60\u5e94\u8be5\u610f\u8bc6\u5230\u4e00\u4e2a\u597d\u7684\u547d\u540d\u4e60\u60ef\u53ef\u4ee5\u5728\u65e5\u540e\u7684\u5de5\u4f5c\u4e2d\u7701\u53bb\u4e00\u4e9b\u4e0d\u5fc5\u8981\u7684\u601d\u8003\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u6587\u4ef6\u5939",src:s(5533).A+"",width:"249",height:"30"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939",src:s(7536).A+"",width:"984",height:"805"})}),"\n",(0,i.jsx)(e.p,{children:"\u7136\u540e\uff0c\u6211\u4eec\u5c31\u6210\u529f\u8fdb\u5165\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fdb\u5165\u540e\u7684\u6837\u5b50",src:s(7851).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["(",(0,i.jsx)(e.del,{children:"\u4e0d\u8981\u5728\u610f\u90a3\u53ea\u684c\u5ba0\uff0c\u540e\u9762\u4f60\u8fd8\u4f1a\u7ecf\u5e38\u89c1\u5230\u5979\u7684"}),")"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u7684IDEA\u4ecd\u7136\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"\u65e7\u7248UI"}),"\uff0c\u56e0\u4e3a\u6211\u4e0d\u4e60\u60ef\u65b0UI\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684IDEA\u548c\u6211\u7684\u754c\u9762\u5206\u5e03",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u62c5\u5fc3"}),"\uff0c\u8fd9\u662f",(0,i.jsx)(e.strong,{children:"\u6b63\u5e38\u73b0\u8c61"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u6784\u5efa\u8be6\u89e3",children:"\u6784\u5efa\u8be6\u89e3"}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u8fdb\u5165\u9879\u76ee\u540e\uff0c\u4f60\u7684IDEA\u5c31\u5f00\u59cb\u81ea\u52a8\u8fd0\u884cGradle\u4e86\uff0c\u6784\u5efa\u4f1a\u5f88\u8017\u8d39\u65f6\u95f4\uff0c\u4ece15\u5206\u949f\u5230\u4e00\u4e24\u4e2a\u5c0f\u65f6\u4e0d\u7b49\uff0c\u5177\u4f53\u89c6\u7f51\u7edc\u73af\u5883\u800c\u8bba\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6784\u5efa\u5931\u8d25\uff1f\u6784\u5efa\u4e0d\u52a8\uff1f\u522b\u6025\uff0c\u6211\u4eec\u5148\u6765\u4e86\u89e3\u4e00\u4e0bGradle\u6784\u5efa\u7cfb\u7edf\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.h4,{id:"gradle\u662f\u4ec0\u4e48",children:"Gradle\u662f\u4ec0\u4e48"}),"\n",(0,i.jsx)(e.p,{children:"Gradle \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u6784\u5efa\u81ea\u52a8\u5316\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u8f6f\u4ef6\u9879\u76ee\u3002\u5b83\u7279\u522b\u9002\u7528\u4e8e\u591a\u8bed\u8a00\u9879\u76ee\uff0c\u5e76\u4e14\u53ef\u4ee5\u5904\u7406\u590d\u6742\u7684\u6784\u5efa\u9700\u6c42\u3002\u76f8\u6bd4\u4e8e\u5176\u4ed6\u6784\u5efa\u5de5\u5177\uff0c\u6bd4\u5982 Apache Maven \u548c Ant\uff0cGradle \u63d0\u4f9b\u4e86\u66f4\u7075\u6d3b\u548c\u5f3a\u5927\u7684\u6784\u5efa\u811a\u672c\uff0c\u56e0\u4e3a\u5b83\u4f7f\u7528\u4e86\u57fa\u4e8e Groovy \u6216 Kotlin \u7684\u9886\u57df\u7279\u5b9a\u8bed\u8a00\uff08DSL\uff09"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u8fd9\u4e2a\u4e1c\u897f\u8d1f\u8d23\u7ba1\u7406\u4f60\u7684\u9879\u76ee\u4e2d\u4e00\u5806\u5806\u7684\u5e93\u3001\u4e00\u645e\u645e\u7684\u8fd0\u884c\u811a\u672c\u548c\u5176\u4ed6\u76f8\u5173\u7ef4\u62a4\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u62d6\u62fd\u6253\u5f00",(0,i.jsx)(e.code,{children:"build.gradle"}),"\uff0c\u770b\u4e00\u773cGroovy\u7684\u8bed\u6cd5\uff0c\u4e0d\u8fc7\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u4fee\u6539\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6ejava\u7248\u672c",children:"\u8bbe\u7f6eJava\u7248\u672c"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684Gradle\u6784\u5efa\u51fa\u5e08\u672a\u6377\u8eab\u5148\u6b7b\uff0c\u63d0\u793a",(0,i.jsx)(e.strong,{children:"Java\u7248\u672c\u6709\u95ee\u9898"}),"\u3002\u8bf7\u6309\u7167\u4e0b\u9762\u7684\u65b9\u6cd5",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u7248\u672c"}),"\uff1a"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u6784\u5efa\u3001\u6267\u884c\u3001\u90e8\u7f72 -> \u6784\u5efa\u5de5\u5177 -> Gradle"}),"\u4e2d\uff0c\u9009\u62e9\u4f60\u7684\u6a21\u5757\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6eSDK"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee",src:s(7030).A+"",width:"1247",height:"897"})}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002\u63a5\u4e0b\u6765\uff0c\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Shift+Alt+S"}),"\uff0c\u547c\u51fa\u9879\u76ee\u5c5e\u6027\u9762\u677f\uff0c\u5728\u201c",(0,i.jsx)(e.strong,{children:"\u9879\u76ee"}),"\u201d\u4e2d\u9009\u62e9",(0,i.jsx)(e.strong,{children:"SDK\u7248\u672c"}),"\uff0c\u5e76\u70b9\u51fb\u786e\u5b9a\uff0c\u5b8c\u6210JDK\u7248\u672c\u7684\u8bbe\u7f6e\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u8bbe\u7f6e",src:s(9573).A+"",width:"1296",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd8\u662f\u6709\u95ee\u9898\uff1f\u56de\u4e0a\u9762",(0,i.jsx)(e.a,{href:"#Java%E7%8E%AF%E5%A2%83%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\u8c03\u7406\u4f60\u7684\u73af\u5883\u53bb\uff01"]}),"\n",(0,i.jsx)(e.h4,{id:"\u6dfb\u52a0\u63d2\u4ef6",children:"\u6dfb\u52a0\u63d2\u4ef6"}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u7406\u8bf4\uff0cIDEA\u4f1a\u5728\u4f60\u5bfc\u5165\u9879\u76ee\u540e\u63a8\u8350\u4e00\u4e2a\u53eb\u505a",(0,i.jsx)(e.code,{children:"Minecraft Development"}),"\u7684\u63d2\u4ef6\uff0c\u5982\u679c\u4f60\u6ca1\u6709\u5b89\u88c5\uff0c\u53ef\u80fd(\u4ea6\u6216\u662f\u5fc5\u7136)\u5f15\u53d1\u6784\u5efa\u9519\u8bef\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"Minecraft Development"}),"\u662f\u4e00\u4e2a\u4e13\u95e8\u63d0\u4f9b\u7ed9\u6211\u7684\u4e16\u754c\u793e\u533a\u5185\u5bb9\u5f00\u53d1\u8005\u7684\u63d2\u4ef6\uff0c\u63d0\u4f9b\u4e86\u5305\u62ec\u63d2\u4ef6\u5f00\u53d1\u3001\u6a21\u7ec4\u5f00\u53d1\u7b49\u4e00\u7cfb\u5217\u652f\u6301\uff0c\u8fd8\u5185\u7f6e\u4e86\u6587\u672c\u5f62\u6001NBT\u7f16\u8f91\u5668\u548c",(0,i.jsx)(e.strong,{children:"Mixin\u65ad\u70b9\u8c03\u8bd5\u652f\u6301"}),"\uff0c\u662f\u5f00\u53d1\u6a21\u7ec4\u5fc5\u4e0d\u53ef\u5c11\u7684\u5f3a\u529b\u63d2\u4ef6\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622170500495",src:s(5733).A+"",width:"357",height:"79"})}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00\u8bbe\u7f6e\u7684\u5feb\u6377\u952e\u4e0a\u6587",(0,i.jsx)(e.a,{href:"#idea%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:(0,i.jsx)(e.strong,{children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"})}),"\u6709\u4ecb\u7ecd\uff0c\u6b64\u5904\u4e0d\u518d\u8d58\u8ff0\u3001"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6e\u4ee3\u7406",children:"\u8bbe\u7f6e\u4ee3\u7406"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u5931\u8d25"}),"\uff0c\u5341\u6709\u516b\u4e5d\u662f",(0,i.jsx)(e.strong,{children:"\u7f51\u7edc\u95ee\u9898"}),'(\u6bd4\u5982\u201cCan\'t find id plugin "abc" \u201d)\u3002\u8fd9\u4e2a\u95ee\u9898\u5e76\u4e0d\u597d\u89e3\u51b3\uff0c\u5982\u679c\u4f60\u6709\u53ef\u7528\u7684\u4ee3\u7406\uff0c\u8bf7\u6309\u8fd9\u4e24\u6b65\u8bbe\u7f6e\u4ee3\u7406\uff1a']}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u5916\u89c2\u4e0e\u884c\u4e3a -> \u7cfb\u7edf\u8bbe\u7f6e -> HTTP\u4ee3\u7406"}),"\u4e2d\uff0c\u4fee\u6539\u4ee3\u7406\u9009\u9879\u4e3a\u201c",(0,i.jsx)(e.strong,{children:"\u624b\u52a8\u914d\u7f6e"}),"\u201d\uff0c\u5e76\u586b\u5165\u4f60\u4ee3\u7406\u7684IP (\u5982192.168.1.3) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u4e3b\u673a\u540d"}),"\u201d\uff0c\u7aef\u53e3 (\u598211451) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u7aef\u53e3\u53f7"}),"\u201d\uff0c\u5e76\u70b9\u51fb\u201c",(0,i.jsx)(e.strong,{children:"\u786e\u5b9a"}),"\u201d\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00",(0,i.jsx)(e.code,{children:"gradle.properties"}),"\uff0c\u5728\u7b2c\u4e00\u884c\u524d\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u6765\u8bbe\u5b9aGradle\u4ee3\u7406\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-properties",children:"[root@localhost=.gradle]\nsystemProp.http.proxyHost=\uff08\u4f60\u7684\u4ee3\u7406IP\uff09\nsystemProp.http.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\nsystemProp.https.proxyHost= \uff08\u4f60\u7684\u4ee3\u7406IP\uff09\nsystemProp.https.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\n# \u5982\u679c\u4f60\u7684\u4ee3\u7406http\u548chttps\u662f\u5408\u5e76\u7684\uff0c\u4e24\u4e2aip\u548c\u4e24\u4e2a\u7aef\u53e3\u662f\u4e00\u6837\u7684\u3002\n"})}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u6837\uff0c\u4f60\u5c31\u7b97\u5b8c\u6210\u4e86\u4ee3\u7406\u7684\u8bbe\u7f6e\u3002\u5982\u679c\u4ee3\u7406\u548c\u76ee\u6807\u4e00\u5207\u6b63\u5e38\uff0c\u5927\u6982\u5c31\u4e0d\u5b58\u5728\u7f51\u7edc\u95ee\u9898\u4e86\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u8fd8\u6709\u65e0\u6cd5\u8fde\u63a5\u7684\u7f51\u7edc\u95ee\u9898\uff0c\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b",(0,i.jsx)(e.a,{href:"../additions/NotThatAccess",children:"\u624b\u52a8\u8bbe\u7f6e\u5e93"}),"\uff0c\u8fd9\u6216\u8bb8\u4f1a\u6709\u5e2e\u52a9\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u5728\u4e0b\u8f7d\u6216\u4e0a\u4f20\u9879\u76ee\u7684\u65f6\u5019\u88abGit\u63d0\u793aConnection Reset\u7b49\u6742\u75c7\uff0c\u591a\u534a\u4e5f\u662f\u7f51\u7edc\u95ee\u9898\uff0c\u4f60\u53ef\u4ee5\u8c03\u51faGit Bash\u8bbe\u7f6e\u4e00\u4e0bhttp\u548chttps\u7684Proxy\u3002\u76f8\u5173\u5185\u5bb9\u5efa\u8bae\u81ea\u884c\u641c\u7d22"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",children:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519"}),"\n",(0,i.jsx)(e.p,{children:"\u7b2c\u4e00\u6b21\u6784\u5efa\u8fdb\u884c\u5230\u540e\u534a\u6bb5\u65f6\uff0c\u53ef\u80fd\u4f1a\u7a81\u7136\u5b9a\u4f4d\u5230\u67d0\u4e2a\u4ee3\u7801\u6bb5\uff0c\u5e76\u5728\u6784\u5efa\u63d0\u793a\u91cc\u8868\u793a\u67d0\u4e9b\u6587\u4ef6\u7684\u67d0\u6bb5\u4ee3\u7801\u6709\u95ee\u9898\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9",(0,i.jsx)(e.strong,{children:"\u5e76\u4e0d\u91cd\u8981"}),"\uff0c\u56e0\u4e3a\u4f60\u8fd8\u6ca1\u6709\u5f00\u59cb\u4fee\u6539\u6837\u672c\u6a21\u7ec4\u7684\u57fa\u7840\u6570\u636e\uff0c\u6240\u4ee5\u8fd9\u53ea\u662f\u6784\u5efa\u5728\u53d1\u795e\u7ecf(\xd7)\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ea\u8981\u5b83\u6ca1\u6709\u5bfc\u81f4\u4f60\u7684\u6784\u5efa\u51fa\u73b0",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\u7684\u63d0\u793a\u5e76\u7ec8\u6b62\uff0c\u8bf7\u76f4\u63a5\u65e0\u89c6\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",children:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684\u6784\u5efa\u4e0d\u5e78\u7684\u906d\u9047\u4e86",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"build\u680f\u76ee"}),"\u4e2d\u7684",(0,i.jsx)(e.strong,{children:"\u5237\u65b0\u6309\u94ae"}),"(\u548c\u6d4f\u89c8\u5668\u7684\u5237\u65b0\u6309\u94ae\u5f88\u50cf)\u91cd\u65b0\u6784\u5efa\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u627e\u4e0d\u5230\u90a3\u4e2a\u6309\u94ae\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u5173\u95ed\u9879\u76ee\u518d\u6253\u5f00\uff0cIDEA\u4f1a\u518d\u4e00\u6b21\u5c1d\u8bd5\u6784\u5efa\u3002"}),"\n",(0,i.jsx)(e.h4,{id:"\u9047\u5230\u56f0\u96be",children:"\u9047\u5230\u56f0\u96be"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u8fd8\u6709\u5176\u5b83\u95ee\u9898\uff0c\u53ef\u4ee5\u6765\u6211\u7ba1\u7406\u7684Ti works\u5bf9\u5916\u5f00\u653eQQ\u7fa4\uff1a",(0,i.jsx)(e.strong,{children:"953398884"})]}),"\n",(0,i.jsx)(e.p,{children:"\u6211\u5e73\u65f6\u6bd4\u8f83\u7e41\u5fd9\uff0c\u5f88\u5c11\u770b\u6d88\u606f\uff0c\u8bf7\u89c1\u8c05\u3002"}),"\n",(0,i.jsx)(e.h3,{id:"\u6d4b\u8bd5\u7a0b\u5e8f",children:"\u6d4b\u8bd5\u7a0b\u5e8f"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u6ca1\u6709\u4ec0\u4e48\u4e25\u91cd\u95ee\u9898\uff0c\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f1a\u5728\u7ed3\u5c3e\u663e\u793a\u4e00\u4e2a\u8d4f\u5fc3\u60a6\u76ee\u7684",(0,i.jsx)(e.code,{children:"BUILD SUCCESS"}),"\u5b57\u6837\u3002\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u521d\u6b21"}),"\u6784\u5efa\u901f\u5ea6\u5feb\u4e8e10\u5206\u949f\uff0c\u90a3\u4f60\u7684\u7f51\u7edc\u73af\u5883\u771f\u7684\u5f88\u4e0d\u9519((("]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e3a\u4e86",(0,i.jsx)(e.strong,{children:"\u68c0\u67e5"}),"\u4e00\u5207\u5982\u6211\u4eec\u6240\u9884\u671f\u7684\u90a3\u6837\u8fdb\u884c\uff0c\u4f60\u9700\u8981",(0,i.jsx)(e.strong,{children:"\u542f\u52a8\u4e00\u6b21"}),"\u90e8\u7f72\u7684MC\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f60\u7684\u8fd0\u884c\u680f\u4f1a\u51fa\u73b0\u8fd9\u6837\u56db\u4e2a\u8fd0\u884c\u9879\u76ee\uff1a",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c",(0,i.jsx)(e.code,{children:"Data"}),"\uff0c",(0,i.jsx)(e.code,{children:"Server"}),"\u548c",(0,i.jsx)(e.code,{children:"GameTestServer"}),"\uff0c\u5982\u56fe\u53f3\u4e0a\u89d2\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"\u5982\u679c\u6ca1\u6709\u51fa\u73b0\u5bf9\u5e94\u542f\u52a8\u6761\u76ee\uff0c\u8bf7\u5c1d\u8bd5\u4e00\u4e0b\u5173\u95edIDEA\u518d\u91cd\u65b0\u8fd0\u884c\u3002"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fd0\u884c\u680f\u5728\u8fd9\u91cc",src:s(3954).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u9009\u62e9",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c\u7136\u540e\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"\u8fd0\u884c"}),"\u3002\u4e00\u6bb5\u65f6\u95f4\u540e\uff0c\u968f\u7740log\u51fa\u6765\u7684\u5c31\u662fMinecraft\u7684\u754c\u9762\u4e86\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5f39\u51fa\u6e38\u620f\u754c\u9762",src:s(6492).A+"",width:"1920",height:"1042"})}),"\n",(0,i.jsx)(e.p,{children:"\u521b\u5efa\u4e00\u4e2a\u4e16\u754c\u8bd5\u8bd5\uff0c\u6ca1\u4ec0\u4e48\u95ee\u9898\u7684\u8bdd\uff0c\u5c31\u53ef\u4ee5\u9000\u51fa\u4e86\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ef\u8fd0\u884c\u7684\u9879\u76ee\u662f\u7531",(0,i.jsx)(e.strong,{children:"\u914d\u7f6e\u6587\u4ef6"}),"\u5b8c\u6210\u7684\uff0c\u5b83\u5b58\u5728\u4e8e\u4f60\u7684\u9879\u76ee\u4e0b\u7684",(0,i.jsx)(e.code,{children:".idea/workspace.xml"}),"\u4e2d\uff0c\u662f\u7531\u6784\u5efa\u81ea\u884c\u751f\u6210\u7684\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u81f3\u6b64\uff0c\u6211\u4eec\u5c31\u7b97",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u6210\u529f"}),"\u4e86\uff01\u5e86\u795d\u4e00\u4e0b\u53ed~"]}),"\n",(0,i.jsx)(e.h2,{id:"\u7ae0\u672b\u5c0f\u8bb0",children:"\u7ae0\u672b\u5c0f\u8bb0"}),"\n",(0,i.jsx)(e.p,{children:"\u662f\u4e0d\u662f\u6709\u4e9b\u7d2f\u5462\uff1f\u6211\u5199\u8fd9\u7ae0\u82b1\u4e86\u4e0d\u5c11\u65f6\u95f4\u5462\u3002\u6211\u8ba4\u4e3a\u5199\u6a21\u7ec4\u8fd9\u4ef6\u4e8b\uff0c\u6b32\u901f\u5219\u4e0d\u8fbe\u3002\u7ec6\u7ec6\u7422\u78e8\uff0c\u6216\u8bb8\u624d\u80fd\u6df1\u5ea6\u7406\u89e3\u5427\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5173\u4e8e\u6211\u7684\u6559\u7a0b\u201c\u7ec6\u81f4\u8fc7\u5ea6\u201d\u7684\u95ee\u9898\uff0c\u6211\u4f1a\u8fdb\u884c\u53cd\u601d\u7684\u3002\u4e0d\u8fc7\u6211\u8ba4\u4e3a\uff0c\u8bb2\u7684\u7ec6\u81f4\u4e00\u70b9\uff0c\u5174\u8bb8\u66f4\u80fd\u5e2e\u5230\u65b0\u624b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63d0\u9192\u4f60\u4e00\u4e0b\uff0c",(0,i.jsx)(e.strong,{children:"\u8ba9AI\u4ee3\u5199\u4ee3\u7801\u4e0d\u603b\u662f\u53ef\u53d6\u7684"}),"\uff0c\u5bf9\u4e8e\u8fd9\u79cd\u504f\u5c0f\u4f17\u7684\u9886\u57df\uff0c\u5c31\u8fdeGPT4\u90fd\u4f1a\u4e0d\u65f6\u5730\u51fa\u9519\u3002\u6240\u4ee5\uff0c\u5c3d\u5df1\u6240\u80fd\uff0c\u52aa\u529b\u63a2\u7d22\uff01"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5bf9\u4e86\uff0c\u6700\u8fd1\u5728B\u7ad9\u4e0a\u770b\u5230\u4e00\u9996\u597d\u542c\u7684\u6b4c(\u542bBGA)\uff1a\u6765\u81ea",(0,i.jsx)(e.code,{children:"Empty old City"}),"\u7684",(0,i.jsx)(e.code,{children:"Astronomy/\u5929\u6587\u5b66"}),"\uff0c\u4e16\u754c\u89c2\u8bbe\u8ba1\u4e5f\u5f88\u6709\u610f\u601d\uff0c\u5728\u6b64\u5206\u4eab\u7ed9\u4f60\uff01"]}),"\n",(0,i.jsx)("div",{style:{position:"relative",width:"100%",paddingBottom:"56.25%",height:0,overflow:"hidden"},children:(0,i.jsx)("iframe",{src:"//player.bilibili.com/player.html?isOutside=true&aid=113355796845449&bvid=BV1ZgyoYBEPw&cid=26425295593&p=1&autoplay=0&high_quality=1",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"none"},allowFullScreen:!0,sandbox:"allow-top-navigation allow-same-origin allow-forms allow-scripts"})}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsxs)(e.p,{children:["MakerTechno\u7f16\u8f91\u4e8e2024\u5e7411\u67089\u65e5\uff0c\u672c\u6587\u5206\u4eab\u81f3",(0,i.jsx)(e.code,{children:"\u51c9\u62cc\u5c0f\u9e3d"}),"\u7684\u4e2a\u4eba\u535a\u5ba2\u90e8\u7f72\uff0c\u5fae\u8c03\u540e\u5728B\u7ad9\u90e8\u7f72"]}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6539\u4e8e2025\u5e746\u670822\u65e5\uff0c\u589e\u6dfb\u4e86\u201c\u6dfb\u52a0\u63d2\u4ef6\u201d\u680f\u76ee\uff0c\u4fee\u6539\u4e86\u90e8\u5206\u5176\u5b83\u5185\u5bb9"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u7f16\u8f91\u4e8e2025\u5e748\u67083\u65e5\uff0c\u9488\u5bf9B\u7ad9\u8bc4\u8bba\u533a\u63d0\u95ee\u505a\u51fa\u4e86\u4fee\u6b63"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Copyright \xa9 2026 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(o,{...n})}):o(n)}},5733:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},5999:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728ArchivedOpenJDK\u4e0b\u8f7dJava-95332d8ddb2c4507429c31cedc7b2bb4.png"},6121:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u538b\u7f29\u5305\u5185\u5bb9-a8396029c99ef3fd9db9d592da93ceba.png"},6492:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5f39\u51fa\u6e38\u620f\u754c\u9762-888a77d645892845940cae0ddde064a8.png"},7030:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee-c3908ac6ebe5fa7ab0639b55d5b51f47.png"},7062:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA-0ef5114f7d73cbab66386a1140d32d2f.png"},7536:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939-342ca311c3eacf49f22a0154b8e00c70.png"},7851:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fdb\u5165\u540e\u7684\u6837\u5b50-2e191e13292dd320d90b736b1c338708.png"},9573:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u9879\u76ee\u8bbe\u7f6e-98c437520064a0e778ceaf6a97b7ae69.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[4502],{425:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java\u8def\u5f84-f5170a22bb379516188ad3355f240a11.png"},2114:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762-051d5fdd00c4441b2b2725dfc0c844d1.png"},3189:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava-c9b29c36cc892e1d75399f539dfb4c62.png"},3725:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Github\u4e0a\u7684NeoGradle\u5e93-0fc403ccea3e56ddc490a3e3bdd12c5f.png"},3906:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Path\u6dfb\u52a0Java-3893ca03d7c19a8ee97c37ec9d598b0a.png"},3954:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fd0\u884c\u680f\u5728\u8fd9\u91cc-15308dbaec13e7025f3f0c62fb1c537c.png"},5086:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java21\u8def\u5f84-15acc474f38d6791ee5cb973d5f70950.png"},5533:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},5609:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>h,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>t});const r=JSON.parse('{"id":"NeoForge1.21Tutorial/\u7b2c\u4e8c\u7ae0/nf1.21ep2","title":"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa","description":"\u63d0\u793a","source":"@site/tutorial/1-NeoForge1.21Tutorial/2-\u7b2c\u4e8c\u7ae0/index.md","sourceDirName":"1-NeoForge1.21Tutorial/2-\u7b2c\u4e8c\u7ae0","slug":"/nf1.21/ep2","permalink":"/docs/tutorial/nf1.21/ep2","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep2","slug":"/nf1.21/ep2"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08","permalink":"/docs/tutorial/nf1.21/ep1"},"next":{"title":"\u7b2c\u4e09\u7ae0 \u57fa\u7840\u6982\u5ff5","permalink":"/docs/tutorial/nf1.21/ep3"}}');var i=s(4848),l=s(8453);const d={id:"nf1.21ep2",slug:"/nf1.21/ep2"},c="\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa",h={},t=[{value:"\u51c6\u5907\u5de5\u4f5c",id:"\u51c6\u5907\u5de5\u4f5c",level:2},{value:"\u5b89\u88c5IntelliJ IDEA",id:"\u5b89\u88c5intellij-idea",level:3},{value:"\u5b89\u88c5JDK",id:"\u5b89\u88c5jdk",level:3},{value:"Linux",id:"linux",level:4},{value:"MacOS",id:"macos",level:4},{value:"Windows",id:"windows",level:4},{value:"OpenJDK",id:"openjdk",level:5},{value:"OracleJDK",id:"oraclejdk",level:5},{value:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93",id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",level:3},{value:"\u989d\u5916\u7684\u8bbe\u7f6e",id:"\u989d\u5916\u7684\u8bbe\u7f6e",level:2},{value:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"\u5f00\u59cb\u6784\u5efa",id:"\u5f00\u59cb\u6784\u5efa",level:2},{value:"\u5bfc\u5165\u9879\u76ee",id:"\u5bfc\u5165\u9879\u76ee",level:3},{value:"\u6784\u5efa\u8be6\u89e3",id:"\u6784\u5efa\u8be6\u89e3",level:3},{value:"Gradle\u662f\u4ec0\u4e48",id:"gradle\u662f\u4ec0\u4e48",level:4},{value:"\u8bbe\u7f6eJava\u7248\u672c",id:"\u8bbe\u7f6ejava\u7248\u672c",level:4},{value:"\u6dfb\u52a0\u63d2\u4ef6",id:"\u6dfb\u52a0\u63d2\u4ef6",level:4},{value:"\u8bbe\u7f6e\u4ee3\u7406",id:"\u8bbe\u7f6e\u4ee3\u7406",level:4},{value:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",level:4},{value:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",level:4},{value:"\u9047\u5230\u56f0\u96be",id:"\u9047\u5230\u56f0\u96be",level:4},{value:"\u6d4b\u8bd5\u7a0b\u5e8f",id:"\u6d4b\u8bd5\u7a0b\u5e8f",level:3},{value:"\u7ae0\u672b\u5c0f\u8bb0",id:"\u7ae0\u672b\u5c0f\u8bb0",level:2}];function o(n){const e={a:"a",blockquote:"blockquote",code:"code",del:"del",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"\u7b2c\u4e8c\u7ae0-\u73af\u5883\u6784\u5efa",children:"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u4e00\u73af\u8282\u4e2d\u7684\u90e8\u5206\u4fe1\u606f\u4f60\u5e94\u8be5\u5728\u4e4b\u524d\u7684\u7f16\u7a0b\u5b66\u4e60\u4e2d\u6709\u6240\u4e86\u89e3\u3002\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u5b89\u88c5IDEA\u548cJDK\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E9%A2%9D%E5%A4%96%E7%9A%84%E8%AE%BE%E7%BD%AE",children:"\u73af\u5883\u8bbe\u7f6e"})]}),"\uff1b\u5982\u679c\u4f60\u5df2\u7ecf\u8bbe\u7f6e\u8fc7Java\u73af\u5883\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA",children:"\u6784\u5efa"})]}),"\uff1b\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u6784\u5efa\uff0c\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7\u672c\u7ae0\u8282"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),(0,i.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,i.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u51c6\u5907\u5de5\u4f5c",children:"\u51c6\u5907\u5de5\u4f5c"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5de5\u6b32\u5584\u5176\u4e8b\uff0c\u5fc5\u5148\u5229\u5176\u5668\u3002"}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e0b\u9762\u7684\u6b65\u9aa4\u6d89\u53ca\u5f88\u591a\u7f51\u7edc\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u540c\u65f6\u8fdb\u884c"}),"\u591a\u4e2a\u6b65\u9aa4\u7684\u4e0b\u8f7d\u548c\u5b89\u88c5\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5intellij-idea",children:"\u5b89\u88c5IntelliJ IDEA"}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u662f\u4e00\u6b3e\u5f3a\u5927\u7684",(0,i.jsx)(e.strong,{children:"\u4ee3\u7801\u7f16\u8f91\u5668"}),"\uff0c\u5bf9Java\u548cKotlin\u7684\u652f\u6301\u5c24\u4e3a\u7a81\u51fa\u3002\u4f7f\u7528IDEA\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u51cf\u5c11\u5f88\u591a\u4e0d\u5fc5\u8981\u7684\u9879\u76ee\u8bbe\u7f6e\u5de5\u4f5c"}),"\uff0c\u4e0d\u8fc7\u5982\u679c\u4f60\u975e\u8981\u7528Eclipse\u6216\u8005VS Code\uff0c\u4e5f\u4e0d\u662f\u4e0d\u884c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u5206\u4e3a",(0,i.jsx)(e.strong,{children:"\u4e13\u4e1a\u7248"}),"\u548c",(0,i.jsx)(e.strong,{children:"\u793e\u533a\u7248"}),"\uff0c\u4e24\u8005\u529f\u80fd\u533a\u522b\u4e0d\u5927\uff0c\u9009\u62e9\u4efb\u4f55\u4e00\u79cd",(0,i.jsx)(e.strong,{children:"\u90fd\u4e0d\u4f1a"}),"\u4e0e\u672c\u6559\u7a0b\u63d0\u4f9b\u7684\u4efb\u610f\u4e00\u4e2a\u6b65\u9aa4\u51b2\u7a81\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u4e13\u4e1a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u6536\u8d39"}),"\u7684\uff0c\u793e\u533a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u4e0d\u6536\u8d39"}),"\u7684\u3002\u4e13\u4e1a\u7248\u53ea\u6709\u4e00\u4e9b\u4f60\u4e00\u822c\u7528\u4e0d\u5230\u7684\u9ad8\u7ea7\u529f\u80fd\uff0c\u6240\u4ee5\u6ca1\u6709IDEA\u7684\u4e0b\u793e\u533a\u7248\u5c31\u884c\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dIDEA\uff0c\u6ce8\u610f\u793e\u533a\u7248(Community Edition)",(0,i.jsx)(e.strong,{children:"\u5728\u9875\u9762\u4e0b\u90e8"}),"\uff0c\u4f60\u770b\u5230\u7684\u7b2c\u4e00\u4e2a\u662f\u4e13\u4e1a\u7248(Ultimate)\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/?section=windows",children:"Download IntelliJ IDEA \u2013 The Leading Java and Kotlin IDE"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA",src:s(7062).A+"",width:"1912",height:"697"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u7ecf\u8fc7\u6211\u6d4b\u8bd5\uff0c\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Windows7"}),"\u7cfb\u7edf\u7684\u5927\u90e8\u5206\u7535\u8111",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u542f\u52a8"}),"\u5b89\u88c5\u540e\u7684",(0,i.jsx)(e.strong,{children:"2024\u7248"}),"IDEA\u3002\u5982\u679c\u4f60\u4f7f\u7528Windows7\uff0c\u8bf7\u5728\u8fd9\u91cc\u5bfb\u627e\u5e76\u4e0b\u8f7d",(0,i.jsx)(e.strong,{children:"2023.1"}),"\u7684IDEA Community\u7248\uff1a ",(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/other.html",children:"Other Versions - IntelliJ IDEA"})]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5b89\u88c5\u7684\u65f6\u5019\uff0c",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u4fee\u6539\u5b89\u88c5\u8def\u5f84\u5230\u522b\u7684\u5b58\u50a8\u76d8\u91cc\u3002",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u5b89\u88c5\u5230\u4f60\u65b0\u5efa\u7684\u4e00\u4e2a\u547d\u540d\u4e3a\u201cIDEA\u201d\u7684\u6587\u4ef6\u5939\u91cc\uff0c\u8fd9\u6837",(0,i.jsx)(e.strong,{children:"\u66f4\u65b9\u4fbf\u7ba1\u7406"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u521d\u6b21\u542f\u52a8IDEA\uff0c\u4f1a\u5f39\u51fa\u7528\u6237\u534f\u8bae\u8bb8\u53ef\u548c\u534f\u52a9\u8f6f\u4ef6\u6539\u8fdb\u7684\u5171\u4eab\u4fe1\u606f\u8bb8\u53ef\uff0c\u65b0\u7248\u672c\u4f1a\u5e2e\u52a9\u4f60\u8bbe\u7f6e\u8bed\u8a00\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u542f\u52a8IDEA\u540e\uff0c\u4e0d\u8981\u6025\u7740\u65b0\u5efa\u9879\u76ee(\u4e5f\u6839\u672c\u7528\u4e0d\u5230\u65b0\u5efa)\uff0c\u6211\u4eec\u8fd8",(0,i.jsx)(e.strong,{children:"\u7f3a\u5c11\u4e00\u4e2a\u5173\u952e\u6b65\u9aa4"}),"\u3002"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5jdk",children:"\u5b89\u88c5JDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u4eec\u5f00\u53d1\u7684\u6a21\u7ec4\u662f",(0,i.jsx)(e.strong,{children:"\u9488\u5bf9Minecraft1.21"}),"\u7684\uff0cNeoForge\u5bf9\u6b64\u63d0\u4f9b\u7684",(0,i.jsx)(e.strong,{children:"Gradle\u6784\u5efa"}),"\u8981\u6c42\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Java21"}),"\u3002\u6240\u4ee5\uff0c\u7b2c\u4e00\u6b65\uff0c\u5b89\u88c5\u4e00\u4e2a21\u7248\u672c\u7684JDK\u5427\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["JDK\u5206\u4e3a\u4e24\u79cd\uff0cOpenJDK\u548cOracleJDK\uff0c\u6709\u5174\u8da3\u7684\u53ef\u4ee5\u5728",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/qq_33326733/article/details/138875513",children:"\u8fd9\u7bc7\u6587\u7ae0"}),"\u8fdb\u884c\u4e86\u89e3\uff0c\u5728\u6b64\u6211\u4eec\u63a8\u8350\u4f7f\u7528OpenJDK"]}),"\n",(0,i.jsx)(e.h4,{id:"linux",children:"Linux"}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6587\u4f5c\u8005\u4e3b\u8981\u4f7f\u7528Windows10\u7cfb\u7edf\uff0c\u4e0d\u4f1a\u5bf9Linux\u7cfb\u7edf\u8fdb\u884c\u8fc7\u591a\u6307\u5bfc\u3002\u4ee5\u4e0b\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4ee5\u53ca\u540e\u9762\u7684\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u8bf7\u81ea\u884c\u9605\u8bfb",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/u013250861/article/details/131141098",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsx)(e.h4,{id:"macos",children:"MacOS"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u53c2\u8003",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/Lwehne/article/details/135867512",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u54c7\u662f\u82f9\u679c\uff0c\u7a00\u5ba2\u6b38\uff01\u6211\u865a\u62df\u673a\u8dd1XCode\u7684iOS Simulator\u592a\u5361\u4e86\uff0c\u628a\u4f60\u7684\u501f\u6211\u7528\u51e0\u5929(\u6ed1\u7a3d)"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"windows",children:"Windows"}),"\n",(0,i.jsx)(e.h5,{id:"openjdk",children:"OpenJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),".0.2\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dzip\u5305\u5373\u53ef\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://jdk.java.net/archive/",children:"Archived OpenJDK GA Releases"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622204204167",src:s(5999).A+"",width:"1210",height:"948"})}),"\n",(0,i.jsx)(e.h5,{id:"oraclejdk",children:"OracleJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),"\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dexe\u5b89\u88c5\u5305\u6216msi\u5b89\u88c5\u5305\u90fd\u53ef\u4ee5\uff0c\u4f46\u662f\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.oracle.com/java/technologies/downloads/#java21",children:"Java Downloads (JDK21 for Windows) | Oracle"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava",src:s(3189).A+"",width:"1912",height:"792"})}),"\n",(0,i.jsx)(e.p,{children:"\u4e0b\u8f7d\u5b8c\u6210\u540e\uff0c\u53cc\u51fb\u5b89\u88c5\u5305\uff0c\u6309\u7167\u5b89\u88c5\u5411\u5bfc\u63d0\u793a\u5b89\u88c5(\u4e0d\u5efa\u8bae\u8c03\u6574\u4efb\u4f55\u53ef\u8c03\u53c2\u6570\uff0c\u76f4\u63a5Next\u5373\u53ef)"}),"\n",(0,i.jsx)(e.h3,{id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",children:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93"}),"\n",(0,i.jsx)(e.p,{children:"\u4e3a\u4e86\u5b8c\u6210\u9879\u76ee\u7684\u6784\u5efa\u5e76\u5f15\u5165Minecraft\u73af\u5883\uff0c\u6211\u4eec\u9700\u8981\u4e0b\u8f7dNeoForge\u7684\u6784\u5efa\u9879\u76ee\u5e93\u5e76\u89e3\u538b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u76ee\u524d\u6709\u4e24\u79cd\u6784\u5efa\u5e93\u4f9b\u5f00\u53d1\u8005\u9009\u62e9\uff1a",(0,i.jsx)(e.strong,{children:"ModDevGradle"}),"\u548c",(0,i.jsx)(e.strong,{children:"NeoGradle"}),"\uff0c\u4e24\u8005",(0,i.jsx)(e.strong,{children:"\u533a\u522b\u4e0d\u5927"}),"\uff0c\u5b83\u4eec",(0,i.jsx)(e.strong,{children:"\u90fd\u662fMod Developer Kit(MDK)"}),"\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u672c\u6559\u7a0b\u4f7f\u7528ModDevGradle"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u5bf9\u4e8e\u5982\u4f55\u51c6\u5907\u6784\u5efa\uff0cNeoForge\u7684\u6587\u6863\u662f\u5982\u6b64\u89e3\u91ca\u7684\uff1a"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["Open the Mod Developer Kit (MDK) (either ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-ModDevGradle",children:"ModDevGradle"})," or ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-NeoGradle",children:"NeoGradle"}),') GitHub repository, click "Use this template" and clone the newly-created repository to your local machine.',"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"If you do not want to use GitHub, or if you want to get the template for an older commit, you can also download the ZIP of the repository (under Code -> Download ZIP) and extract it."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e5f\u5c31\u662f\u8bf4\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u76f4\u63a5"}),"\u5728GitHub\u4e0a",(0,i.jsx)(e.strong,{children:"\u521b\u5efa"}),"\u4e00\u4e2a\u4ee5MDK\u4e3a\u6a21\u677f\u7684\u9879\u76ee\uff0c\u518d\u901a\u8fc7IDEA",(0,i.jsx)(e.strong,{children:"\u514b\u9686"}),"\u5230\u672c\u5730\u3002\u8fd9\u4f1a\u5bfc\u81f4\u4f60\u7684\u9879\u76ee\u4e0a\u51fa\u73b0\u201d\u4f7f\u7528xxx\u4e3a\u6a21\u677f\u201c\u7684\u6807\u8bc6\u3002\u5f53\u7136\u4f60",(0,i.jsx)(e.strong,{children:"\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u4f7f\u7528"}),"GitHub\u7684\u6a21\u677f\u9879\u76ee\uff0c\u76f4\u63a5\u70b9\u51fbCode\u6309\u94ae\u7136\u540e",(0,i.jsx)(e.strong,{children:"\u4e0b\u8f7dzip\u5230\u672c\u5730"}),"(\u6211\u7ecf\u5e38\u8fd9\u4e48\u5e72)\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u7a0d\u7b49\u4e00\u4e0b\uff01\u4f60\u662f\u5728\u5f00\u53d11.21.x\u5417\uff1f\u5982\u679c\u662f\u8fd9\u6837\uff0c\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u4f5c\u4e3a\u53c2\u8003"}),"\uff01\u8fd9\u91cc\u7ed9\u51fa\u7684\u94fe\u63a5",(0,i.jsx)(e.strong,{children:"\u5168\u90fd\u6307\u54111.21\u800c\u4e0d\u662f1.21.x"}),"\uff01\u5982\u679c\u4f60\u8981\u4e0b\u8f7d1.21.x\u7684MDK\u5305\uff0c\u8bf7\u5728",(0,i.jsx)(e.a,{href:"https://github.com/orgs/NeoForgeMDKs/repositories?type=all",children:"\u8fd9\u91cc"}),"\u9009\u62e9\u5bf9\u5e94\u7248\u672c\u548c\u5bf9\u5e94\u6784\u5efa\u5e93\u4e0b\u8f7d\uff01\u4e0d\u540c\u7248\u672c\u95f4\u4f1a",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff01"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Github\u4e0a\u7684NeoGradle\u5e93",src:s(3725).A+"",width:"1564",height:"718"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"GitHub\u5728\u56fd\u5185\u7684\u8bbf\u95ee\u5e76\u4e0d\u7a33\u5b9a\u3002\u5982\u679c\u4f60\u9047\u5230\u7f51\u7edc\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u4e0d\u662f\u5e94\u8be5\u53bb\u627e\u627e\u4ec0\u4e48\u89e3\u51b3\u65b9\u6848\u5462\uff1f(\u54b3\u54b3)"}),"\n",(0,i.jsx)(e.p,{children:"ps: \u8bf7\u9075\u5b88\u56fd\u5bb6\u6cd5\u5f8b\u89c4\u5b9a\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u989d\u5916\u7684\u8bbe\u7f6e",children:"\u989d\u5916\u7684\u8bbe\u7f6e"}),"\n",(0,i.jsx)(e.h3,{id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u8fd0\u884c\u5f00\u53d1\u73af\u5883\u65f6\uff0c\u6211\u4eec\u7ecf\u5e38\u9047\u5230\u4e00\u4e9b\u5173\u4e8e\u7f16\u8bd1\u5668",(0,i.jsx)(e.strong,{children:"\u7248\u672c"}),"\u7684\u5c0f\u95ee\u9898\u3002\u8b6c\u5982\u4f60\u4e3a\u4e86\u548c\u670b\u53cb\u73a9\u8d5b\u6587\u79d1\u6280\u6574\u5408\u5305\u800c\u540c\u65f6\u5b89\u88c5\u4e86JDK8\u3001\u4e3a\u4e86\u5de5\u4f5c\u4f7f\u7528JDK11\uff0c\u4ea6\u6216\u662f\u5728\u4e4b\u524d\u7684\u5b66\u4e60\u4e2d\u4f7f\u7528\u4e86JDK23\u7b49\uff0cIDEA\u548cPCL2\u81ea\u7136\u4f1a",(0,i.jsx)(e.strong,{children:"\u5e2e\u4f60\u9009\u62e9\u5408\u9002\u7684Java\u7248\u672c"}),"\u3002\u4f46\u662f\uff0c\u6211\u4eec\u7684Gradle\u548ccmd\u5c31",(0,i.jsx)(e.strong,{children:"\u6ca1\u8fd9\u4e48\u806a\u660e"}),"\u3002\u56e0\u6b64\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf"}),"\u6210\u4e3a\u4e86\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5fc5\u4e0d\u53ef\u5c11"}),"\u7684\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u6309\u4e0bWin+R"}),"\u6253\u5f00\u8fd0\u884c\uff0c\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u540e",(0,i.jsxs)(e.strong,{children:["\u6309\u4f4fCtrl+Shift(\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u6253\u5f00)",(0,i.jsx)(e.strong,{children:"\u5e76\u56de\u8f66\uff0c\u5141\u8bb8\u7ba1\u7406\u5458\u6743\u9650\u7684\u63d0\u793a\u540e\uff0c\u6253\u5f00"}),"\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u7a97\u53e3"]}),"\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-bash",children:"rundll32 sysdm.cpl,EditEnvironmentVariables\n"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u5176\u5b9e",(0,i.jsx)(e.strong,{children:"\u7b49\u6548\u4e8e"}),"\uff1a\u53f3\u952e\u6b64\u7535\u8111->\u70b9\u51fb\u5c5e\u6027->\u70b9\u51fb\u4fa7\u8fb9\u201c\u9ad8\u7ea7\u7cfb\u7edf\u8bbe\u7f6e\u201d->(\u6743\u9650\u8ba4\u8bc1)->\u70b9\u51fb\u201c\u73af\u5883\u53d8\u91cf\u201d"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u4f1a\u770b\u5230\u4e24\u4e2a\u680f\u76ee\uff0c\u8bf7\u5728",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf\u680f\u76ee"}),"\u91cc\u8fdb\u884c\u64cd\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u201c\u73af\u5883\u53d8\u91cf\u201d\u7684\u65b0\u5efa\u7b49\u6309\u94ae",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u70b9\u51fb"}),"\uff0c\u8bf4\u660e\u4f60",(0,i.jsx)(e.strong,{children:"\u672a\u8d4b\u4e88\u7ba1\u7406\u5458\u6388\u6743"}),"\u6216",(0,i.jsx)(e.strong,{children:"\u6743\u9650\u4e0d\u591f"}),"\u3002\u8fd9\u79cd\u60c5\u51b5\u4e0b",(0,i.jsx)(e.strong,{children:"\u8bf7\u6309\u7167\u201c\u7b49\u6548\u4e8e\u201d\u4e2d\u7684\u6b65\u9aa4\u64cd\u4f5c"}),"\uff0c\u6216\u8054\u7cfb\u8bbe\u5907\u7ba1\u7406\u5458\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u65b0\u5efa\u201d\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u6846\u4e2d\u7684\u201d\u53d8\u91cf\u540d\u201c\u5904\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA21_HOME"}),"\uff0c\u5728\u53d8\u91cf\u503c\u8f93\u5165\u4f60\u5b89\u88c5JDK\u7684\u6587\u4ef6\u5939\u4f4d\u7f6e\uff0c\u5982\u679c\u4f60\u6ca1\u6539\u8fc7\uff0c\u4e00\u822c\u53ef\u4ee5\u5728",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java"}),"\u7684\u5730\u65b9\u627e\u5230\u5b83\u3002\u6211\u7684\u53d8\u91cf\u503c\u662f",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java\\jdk-21"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java21\u8def\u5f84",src:s(5086).A+"",width:"1062",height:"310"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u6309\u94ae\uff0c\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u518d\u6b21\u70b9\u51fb\u201c\u65b0\u5efa\u201d\uff0c\u53d8\u91cf\u540d\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA_HOME"}),"\uff0c\u53d8\u91cf\u503c\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA21_HOME%"}),"\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5c11\u4e86\u767e\u5206\u53f7"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java\u8def\u5f84",src:s(425).A+"",width:"1065",height:"395"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u7ffb\u627e\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf"}),"\uff0c\u627e\u5230\u5e76\u53cc\u51fb\u201c",(0,i.jsx)(e.strong,{children:"Path"}),'"\u8fd9\u4e2a\u503c\uff0c\u6253\u5f00\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u70b9\u51fb\u73af\u5883\u53d8\u91cf\u7684\u201c\u65b0\u5efa\u201d\uff0c\u586b\u5165',(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u5e76\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u5e76\u9000\u51fa\u7f16\u8f91\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f7f\u7528Windows7\u7684\u7528\u6237",(0,i.jsx)(e.strong,{children:"\u5e76\u6ca1\u6709"}),"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u7684\u5355\u72ec\u7a97\u53e3\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53cc\u51fb\u4f1a\u5f39\u51fa\u666e\u901a\u7684\u7cfb\u7edf\u53d8\u91cf\u7f16\u8f91\u3002\u8bf7",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5220\u9664"}),"\u53d8\u91cf\u503c\u7684\u4efb\u4f55\u5185\u5bb9\uff01\u5728\u7ed3\u5c3e\u5904\u6dfb\u52a0\u4e00\u4e2a\u82f1\u6587\u5206\u9694\u7b26",(0,i.jsx)(e.code,{children:";"}),"\uff0c\u5e76\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u70b9\u51fb\u201c\u786e\u8ba4\u201d\u5b8c\u6210\u7f16\u8f91"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u4f60\u7684Path\u91cc\u9762",(0,i.jsx)(e.strong,{children:"\u5df2\u7ecf\u6709"}),"\u7c7b\u4f3c\u914d\u7f6e\u4e86\uff0c\u4f60\u5c31\u4e0d\u9700\u8981\u8fdb\u884c\u8fd9\u6b65\u4e86\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Path\u6dfb\u52a0Java",src:s(3906).A+"",width:"1116",height:"643"})}),"\n",(0,i.jsx)(e.h3,{id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u5b89\u88c5IDEA\u7684\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u201c",(0,i.jsx)(e.strong,{children:"\u9009\u62e9\u8bed\u8a00"}),"\u201d\u7684\u6b65\u9aa4\uff0c\u5e76\u4e14\u4e2d\u6587\u6b63\u5e38\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7"}),"\u8fd9\u90e8\u5206"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["2024\u53ca\u4ee5\u524d\u7684IDEA\u7684\u9ed8\u8ba4\u8bed\u8a00\u662f",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\uff0c\u4e0d\u8fc7\u4e0d\u7528\u62c5\u5fc3\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u5b89\u88c5\u4e2d\u6587\u63d2\u4ef6"}),"\u7684\u65b9\u6cd5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd0\u884cIDEA\uff0c\u5728\u7a97\u53e3\u4e2d\u6309\u4e0b\u7ec4\u5408\u952e",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u6253\u5f00\u8bbe\u7f6e\uff0c\u5728\u5de6\u4fa7\u680f\u76ee\u9009\u62e9\u201c",(0,i.jsx)(e.strong,{children:"Plugins"}),"\u201d\uff0c\u5728Marketplace\u91cc",(0,i.jsx)(e.strong,{children:"\u641c\u7d22\u201cChinese\u201d"}),"\uff0c\u5b89\u88c5",(0,i.jsx)(e.strong,{children:"\u7b80\u4f53\u4e2d\u6587"}),"\u8bed\u8a00\u5305\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762",src:s(2114).A+"",title:"\u63d2\u4ef6\u7ba1\u7406\u957f\u8fd9\u4e2a\u6837\u5b50",width:"1247",height:"897"})}),"\n",(0,i.jsx)(e.p,{children:"\u5b89\u88c5\u5b8c\u6210\u540e\uff0cIDEA\u4f1a\u63d0\u793a\u4f60\u91cd\u65b0\u542f\u52a8IDEA\u7a0b\u5e8f\uff0c\u70b9\u51fbEnter\u81ea\u52a8\u91cd\u542f\u6216\u624b\u52a8\u5173\u95ed\u518d\u5f00\u542f\u90fd\u53ef\u4ee5\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"\u5f00\u59cb\u6784\u5efa",children:"\u5f00\u59cb\u6784\u5efa"}),"\n",(0,i.jsx)(e.h3,{id:"\u5bfc\u5165\u9879\u76ee",children:"\u5bfc\u5165\u9879\u76ee"}),"\n",(0,i.jsx)(e.p,{children:"\u7ecf\u8fc7\u4e86\u4e00\u6bb5\u65f6\u95f4\u7684\u51c6\u5907\uff0c\u6211\u4eec\u5df2\u7ecf\u5b8c\u6210\u4e86\u521d\u6b65\u7684\u51c6\u5907\uff0c\u53ef\u4ee5\u6b63\u5f0f\u5f00\u59cb\u6784\u5efa\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6b63\u5de7\uff0c\u6211\u624b\u5934\u6709\u4e9b\u8ba1\u5212\u7684\u6a21\u7ec4\uff0c\u5c31\u968f\u7740\u5199\u6a21\u7ec4\u4e00\u4e00\u4ecb\u7ecd\u600e\u4e48\u5199\u5427\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u524d\u6587\u9009\u62e9\u4e86",(0,i.jsx)(e.strong,{children:"\u5728GitHub\u4e0a\u8fdb\u884c\u514b\u9686"}),"\uff0c\u53ea\u9700\u8981\u5728\u672c\u5730",(0,i.jsx)(e.strong,{children:"VCS"}),"\u514b\u9686\u8fc7\u6765\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u9009\u62e9\u4e0b\u8f7dzip\u6587\u4ef6\uff0c\u9996\u5148\uff0c\u8981\u628a\u4e0b\u8f7d\u597d\u7684\u538b\u7f29\u5305\u6574\u4e2a",(0,i.jsx)(e.strong,{children:"\u89e3\u538b"}),"\u6210\u4e3a\u4e00\u4e2a\u5355\u72ec\u7684\u9879\u76ee\u6587\u4ef6\u5939(\u6211\u4f1a\u628a\u89e3\u538b\u5185\u5bb9\u585e\u5230Projects\u6587\u4ef6\u5939\u91cc)\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u538b\u7f29\u5305\u5185\u5bb9",src:s(6121).A+"",width:"1321",height:"738"})}),"\n",(0,i.jsxs)(e.p,{children:["\u7136\u540e\uff0c\u5c06\u8fd9\u4e2a\u6587\u4ef6\u5939\u540d\u79f0\u6539\u6210\u52a0\u8f7d\u5668\u540d+\u6e38\u620f\u7248\u672c+\u6211\u4eec\u81ea\u5df1\u5b9a\u4e49\u7684\u6a21\u7ec4\u540d(",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5e26\u7a7a\u683c\u3001\u7279\u6b8a\u7b26\u53f7\u7b49"}),")\uff0c\u5e76\u5728IDEA\u4e2d\u70b9\u51fb\u201c\u6253\u5f00\u9879\u76ee\u201d\uff0c\u9009\u62e9\u6211\u4eec\u521a\u521a\u89e3\u538b\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e00\u6b65\u5176\u5b9e\u5e76\u4e0d\u91cd\u8981\uff0c\u4f46\u662f\u4f60\u5e94\u8be5\u610f\u8bc6\u5230\u4e00\u4e2a\u597d\u7684\u547d\u540d\u4e60\u60ef\u53ef\u4ee5\u5728\u65e5\u540e\u7684\u5de5\u4f5c\u4e2d\u7701\u53bb\u4e00\u4e9b\u4e0d\u5fc5\u8981\u7684\u601d\u8003\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u6587\u4ef6\u5939",src:s(5533).A+"",width:"249",height:"30"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939",src:s(7536).A+"",width:"984",height:"805"})}),"\n",(0,i.jsx)(e.p,{children:"\u7136\u540e\uff0c\u6211\u4eec\u5c31\u6210\u529f\u8fdb\u5165\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fdb\u5165\u540e\u7684\u6837\u5b50",src:s(7851).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["(",(0,i.jsx)(e.del,{children:"\u4e0d\u8981\u5728\u610f\u90a3\u53ea\u684c\u5ba0\uff0c\u540e\u9762\u4f60\u8fd8\u4f1a\u7ecf\u5e38\u89c1\u5230\u5979\u7684"}),")"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u7684IDEA\u4ecd\u7136\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"\u65e7\u7248UI"}),"\uff0c\u56e0\u4e3a\u6211\u4e0d\u4e60\u60ef\u65b0UI\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684IDEA\u548c\u6211\u7684\u754c\u9762\u5206\u5e03",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u62c5\u5fc3"}),"\uff0c\u8fd9\u662f",(0,i.jsx)(e.strong,{children:"\u6b63\u5e38\u73b0\u8c61"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u6784\u5efa\u8be6\u89e3",children:"\u6784\u5efa\u8be6\u89e3"}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u8fdb\u5165\u9879\u76ee\u540e\uff0c\u4f60\u7684IDEA\u5c31\u5f00\u59cb\u81ea\u52a8\u8fd0\u884cGradle\u4e86\uff0c\u6784\u5efa\u4f1a\u5f88\u8017\u8d39\u65f6\u95f4\uff0c\u4ece15\u5206\u949f\u5230\u4e00\u4e24\u4e2a\u5c0f\u65f6\u4e0d\u7b49\uff0c\u5177\u4f53\u89c6\u7f51\u7edc\u73af\u5883\u800c\u8bba\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6784\u5efa\u5931\u8d25\uff1f\u6784\u5efa\u4e0d\u52a8\uff1f\u522b\u6025\uff0c\u6211\u4eec\u5148\u6765\u4e86\u89e3\u4e00\u4e0bGradle\u6784\u5efa\u7cfb\u7edf\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.h4,{id:"gradle\u662f\u4ec0\u4e48",children:"Gradle\u662f\u4ec0\u4e48"}),"\n",(0,i.jsx)(e.p,{children:"Gradle \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u6784\u5efa\u81ea\u52a8\u5316\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u8f6f\u4ef6\u9879\u76ee\u3002\u5b83\u7279\u522b\u9002\u7528\u4e8e\u591a\u8bed\u8a00\u9879\u76ee\uff0c\u5e76\u4e14\u53ef\u4ee5\u5904\u7406\u590d\u6742\u7684\u6784\u5efa\u9700\u6c42\u3002\u76f8\u6bd4\u4e8e\u5176\u4ed6\u6784\u5efa\u5de5\u5177\uff0c\u6bd4\u5982 Apache Maven \u548c Ant\uff0cGradle \u63d0\u4f9b\u4e86\u66f4\u7075\u6d3b\u548c\u5f3a\u5927\u7684\u6784\u5efa\u811a\u672c\uff0c\u56e0\u4e3a\u5b83\u4f7f\u7528\u4e86\u57fa\u4e8e Groovy \u6216 Kotlin \u7684\u9886\u57df\u7279\u5b9a\u8bed\u8a00\uff08DSL\uff09"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u8fd9\u4e2a\u4e1c\u897f\u8d1f\u8d23\u7ba1\u7406\u4f60\u7684\u9879\u76ee\u4e2d\u4e00\u5806\u5806\u7684\u5e93\u3001\u4e00\u645e\u645e\u7684\u8fd0\u884c\u811a\u672c\u548c\u5176\u4ed6\u76f8\u5173\u7ef4\u62a4\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u62d6\u62fd\u6253\u5f00",(0,i.jsx)(e.code,{children:"build.gradle"}),"\uff0c\u770b\u4e00\u773cGroovy\u7684\u8bed\u6cd5\uff0c\u4e0d\u8fc7\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u4fee\u6539\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6ejava\u7248\u672c",children:"\u8bbe\u7f6eJava\u7248\u672c"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684Gradle\u6784\u5efa\u51fa\u5e08\u672a\u6377\u8eab\u5148\u6b7b\uff0c\u63d0\u793a",(0,i.jsx)(e.strong,{children:"Java\u7248\u672c\u6709\u95ee\u9898"}),"\u3002\u8bf7\u6309\u7167\u4e0b\u9762\u7684\u65b9\u6cd5",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u7248\u672c"}),"\uff1a"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u6784\u5efa\u3001\u6267\u884c\u3001\u90e8\u7f72 -> \u6784\u5efa\u5de5\u5177 -> Gradle"}),"\u4e2d\uff0c\u9009\u62e9\u4f60\u7684\u6a21\u5757\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6eSDK"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee",src:s(7030).A+"",width:"1247",height:"897"})}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002\u63a5\u4e0b\u6765\uff0c\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Shift+Alt+S"}),"\uff0c\u547c\u51fa\u9879\u76ee\u5c5e\u6027\u9762\u677f\uff0c\u5728\u201c",(0,i.jsx)(e.strong,{children:"\u9879\u76ee"}),"\u201d\u4e2d\u9009\u62e9",(0,i.jsx)(e.strong,{children:"SDK\u7248\u672c"}),"\uff0c\u5e76\u70b9\u51fb\u786e\u5b9a\uff0c\u5b8c\u6210JDK\u7248\u672c\u7684\u8bbe\u7f6e\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u8bbe\u7f6e",src:s(9573).A+"",width:"1296",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd8\u662f\u6709\u95ee\u9898\uff1f\u56de\u4e0a\u9762",(0,i.jsx)(e.a,{href:"#java%E7%8E%AF%E5%A2%83%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\u8c03\u7406\u4f60\u7684\u73af\u5883\u53bb\uff01"]}),"\n",(0,i.jsx)(e.h4,{id:"\u6dfb\u52a0\u63d2\u4ef6",children:"\u6dfb\u52a0\u63d2\u4ef6"}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u7406\u8bf4\uff0cIDEA\u4f1a\u5728\u4f60\u5bfc\u5165\u9879\u76ee\u540e\u63a8\u8350\u4e00\u4e2a\u53eb\u505a",(0,i.jsx)(e.code,{children:"Minecraft Development"}),"\u7684\u63d2\u4ef6\uff0c\u5982\u679c\u4f60\u6ca1\u6709\u5b89\u88c5\uff0c\u53ef\u80fd(\u4ea6\u6216\u662f\u5fc5\u7136)\u5f15\u53d1\u6784\u5efa\u9519\u8bef\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"Minecraft Development"}),"\u662f\u4e00\u4e2a\u4e13\u95e8\u63d0\u4f9b\u7ed9\u6211\u7684\u4e16\u754c\u793e\u533a\u5185\u5bb9\u5f00\u53d1\u8005\u7684\u63d2\u4ef6\uff0c\u63d0\u4f9b\u4e86\u5305\u62ec\u63d2\u4ef6\u5f00\u53d1\u3001\u6a21\u7ec4\u5f00\u53d1\u7b49\u4e00\u7cfb\u5217\u652f\u6301\uff0c\u8fd8\u5185\u7f6e\u4e86\u6587\u672c\u5f62\u6001NBT\u7f16\u8f91\u5668\u548c",(0,i.jsx)(e.strong,{children:"Mixin\u65ad\u70b9\u8c03\u8bd5\u652f\u6301"}),"\uff0c\u662f\u5f00\u53d1\u6a21\u7ec4\u5fc5\u4e0d\u53ef\u5c11\u7684\u5f3a\u529b\u63d2\u4ef6\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622170500495",src:s(5733).A+"",width:"357",height:"79"})}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00\u8bbe\u7f6e\u7684\u5feb\u6377\u952e\u4e0a\u6587",(0,i.jsx)(e.a,{href:"#idea%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:(0,i.jsx)(e.strong,{children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"})}),"\u6709\u4ecb\u7ecd\uff0c\u6b64\u5904\u4e0d\u518d\u8d58\u8ff0\u3001"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6e\u4ee3\u7406",children:"\u8bbe\u7f6e\u4ee3\u7406"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u5931\u8d25"}),"\uff0c\u5341\u6709\u516b\u4e5d\u662f",(0,i.jsx)(e.strong,{children:"\u7f51\u7edc\u95ee\u9898"}),'(\u6bd4\u5982\u201cCan\'t find id plugin "abc" \u201d)\u3002\u8fd9\u4e2a\u95ee\u9898\u5e76\u4e0d\u597d\u89e3\u51b3\uff0c\u5982\u679c\u4f60\u6709\u53ef\u7528\u7684\u4ee3\u7406\uff0c\u8bf7\u6309\u8fd9\u4e24\u6b65\u8bbe\u7f6e\u4ee3\u7406\uff1a']}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u5916\u89c2\u4e0e\u884c\u4e3a -> \u7cfb\u7edf\u8bbe\u7f6e -> HTTP\u4ee3\u7406"}),"\u4e2d\uff0c\u4fee\u6539\u4ee3\u7406\u9009\u9879\u4e3a\u201c",(0,i.jsx)(e.strong,{children:"\u624b\u52a8\u914d\u7f6e"}),"\u201d\uff0c\u5e76\u586b\u5165\u4f60\u4ee3\u7406\u7684IP (\u5982192.168.1.3) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u4e3b\u673a\u540d"}),"\u201d\uff0c\u7aef\u53e3 (\u598211451) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u7aef\u53e3\u53f7"}),"\u201d\uff0c\u5e76\u70b9\u51fb\u201c",(0,i.jsx)(e.strong,{children:"\u786e\u5b9a"}),"\u201d\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00",(0,i.jsx)(e.code,{children:"gradle.properties"}),"\uff0c\u5728\u7b2c\u4e00\u884c\u524d\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u6765\u8bbe\u5b9aGradle\u4ee3\u7406\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-properties",children:"[root@localhost=.gradle]\nsystemProp.http.proxyHost=\uff08\u4f60\u7684\u4ee3\u7406IP\uff09\nsystemProp.http.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\nsystemProp.https.proxyHost= \uff08\u4f60\u7684\u4ee3\u7406IP\uff09\nsystemProp.https.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\n# \u5982\u679c\u4f60\u7684\u4ee3\u7406http\u548chttps\u662f\u5408\u5e76\u7684\uff0c\u4e24\u4e2aip\u548c\u4e24\u4e2a\u7aef\u53e3\u662f\u4e00\u6837\u7684\u3002\n"})}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u6837\uff0c\u4f60\u5c31\u7b97\u5b8c\u6210\u4e86\u4ee3\u7406\u7684\u8bbe\u7f6e\u3002\u5982\u679c\u4ee3\u7406\u548c\u76ee\u6807\u4e00\u5207\u6b63\u5e38\uff0c\u5927\u6982\u5c31\u4e0d\u5b58\u5728\u7f51\u7edc\u95ee\u9898\u4e86\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u8fd8\u6709\u65e0\u6cd5\u8fde\u63a5\u7684\u7f51\u7edc\u95ee\u9898\uff0c\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b",(0,i.jsx)(e.a,{href:"../additions/NotThatAccess",children:"\u624b\u52a8\u8bbe\u7f6e\u5e93"}),"\uff0c\u8fd9\u6216\u8bb8\u4f1a\u6709\u5e2e\u52a9\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u5728\u4e0b\u8f7d\u6216\u4e0a\u4f20\u9879\u76ee\u7684\u65f6\u5019\u88abGit\u63d0\u793aConnection Reset\u7b49\u6742\u75c7\uff0c\u591a\u534a\u4e5f\u662f\u7f51\u7edc\u95ee\u9898\uff0c\u4f60\u53ef\u4ee5\u8c03\u51faGit Bash\u8bbe\u7f6e\u4e00\u4e0bhttp\u548chttps\u7684Proxy\u3002\u76f8\u5173\u5185\u5bb9\u5efa\u8bae\u81ea\u884c\u641c\u7d22"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",children:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519"}),"\n",(0,i.jsx)(e.p,{children:"\u7b2c\u4e00\u6b21\u6784\u5efa\u8fdb\u884c\u5230\u540e\u534a\u6bb5\u65f6\uff0c\u53ef\u80fd\u4f1a\u7a81\u7136\u5b9a\u4f4d\u5230\u67d0\u4e2a\u4ee3\u7801\u6bb5\uff0c\u5e76\u5728\u6784\u5efa\u63d0\u793a\u91cc\u8868\u793a\u67d0\u4e9b\u6587\u4ef6\u7684\u67d0\u6bb5\u4ee3\u7801\u6709\u95ee\u9898\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9",(0,i.jsx)(e.strong,{children:"\u5e76\u4e0d\u91cd\u8981"}),"\uff0c\u56e0\u4e3a\u4f60\u8fd8\u6ca1\u6709\u5f00\u59cb\u4fee\u6539\u6837\u672c\u6a21\u7ec4\u7684\u57fa\u7840\u6570\u636e\uff0c\u6240\u4ee5\u8fd9\u53ea\u662f\u6784\u5efa\u5728\u53d1\u795e\u7ecf(\xd7)\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ea\u8981\u5b83\u6ca1\u6709\u5bfc\u81f4\u4f60\u7684\u6784\u5efa\u51fa\u73b0",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\u7684\u63d0\u793a\u5e76\u7ec8\u6b62\uff0c\u8bf7\u76f4\u63a5\u65e0\u89c6\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",children:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684\u6784\u5efa\u4e0d\u5e78\u7684\u906d\u9047\u4e86",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"build\u680f\u76ee"}),"\u4e2d\u7684",(0,i.jsx)(e.strong,{children:"\u5237\u65b0\u6309\u94ae"}),"(\u548c\u6d4f\u89c8\u5668\u7684\u5237\u65b0\u6309\u94ae\u5f88\u50cf)\u91cd\u65b0\u6784\u5efa\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u627e\u4e0d\u5230\u90a3\u4e2a\u6309\u94ae\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u5173\u95ed\u9879\u76ee\u518d\u6253\u5f00\uff0cIDEA\u4f1a\u518d\u4e00\u6b21\u5c1d\u8bd5\u6784\u5efa\u3002"}),"\n",(0,i.jsx)(e.h4,{id:"\u9047\u5230\u56f0\u96be",children:"\u9047\u5230\u56f0\u96be"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u8fd8\u6709\u5176\u5b83\u95ee\u9898\uff0c\u53ef\u4ee5\u6765\u6211\u7ba1\u7406\u7684Ti works\u5bf9\u5916\u5f00\u653eQQ\u7fa4\uff1a",(0,i.jsx)(e.strong,{children:"953398884"})]}),"\n",(0,i.jsx)(e.p,{children:"\u6211\u5e73\u65f6\u6bd4\u8f83\u7e41\u5fd9\uff0c\u5f88\u5c11\u770b\u6d88\u606f\uff0c\u8bf7\u89c1\u8c05\u3002"}),"\n",(0,i.jsx)(e.h3,{id:"\u6d4b\u8bd5\u7a0b\u5e8f",children:"\u6d4b\u8bd5\u7a0b\u5e8f"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u6ca1\u6709\u4ec0\u4e48\u4e25\u91cd\u95ee\u9898\uff0c\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f1a\u5728\u7ed3\u5c3e\u663e\u793a\u4e00\u4e2a\u8d4f\u5fc3\u60a6\u76ee\u7684",(0,i.jsx)(e.code,{children:"BUILD SUCCESS"}),"\u5b57\u6837\u3002\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u521d\u6b21"}),"\u6784\u5efa\u901f\u5ea6\u5feb\u4e8e10\u5206\u949f\uff0c\u90a3\u4f60\u7684\u7f51\u7edc\u73af\u5883\u771f\u7684\u5f88\u4e0d\u9519((("]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e3a\u4e86",(0,i.jsx)(e.strong,{children:"\u68c0\u67e5"}),"\u4e00\u5207\u5982\u6211\u4eec\u6240\u9884\u671f\u7684\u90a3\u6837\u8fdb\u884c\uff0c\u4f60\u9700\u8981",(0,i.jsx)(e.strong,{children:"\u542f\u52a8\u4e00\u6b21"}),"\u90e8\u7f72\u7684MC\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f60\u7684\u8fd0\u884c\u680f\u4f1a\u51fa\u73b0\u8fd9\u6837\u56db\u4e2a\u8fd0\u884c\u9879\u76ee\uff1a",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c",(0,i.jsx)(e.code,{children:"Data"}),"\uff0c",(0,i.jsx)(e.code,{children:"Server"}),"\u548c",(0,i.jsx)(e.code,{children:"GameTestServer"}),"\uff0c\u5982\u56fe\u53f3\u4e0a\u89d2\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"\u5982\u679c\u6ca1\u6709\u51fa\u73b0\u5bf9\u5e94\u542f\u52a8\u6761\u76ee\uff0c\u8bf7\u5c1d\u8bd5\u4e00\u4e0b\u5173\u95edIDEA\u518d\u91cd\u65b0\u8fd0\u884c\u3002"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fd0\u884c\u680f\u5728\u8fd9\u91cc",src:s(3954).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u9009\u62e9",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c\u7136\u540e\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"\u8fd0\u884c"}),"\u3002\u4e00\u6bb5\u65f6\u95f4\u540e\uff0c\u968f\u7740log\u51fa\u6765\u7684\u5c31\u662fMinecraft\u7684\u754c\u9762\u4e86\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5f39\u51fa\u6e38\u620f\u754c\u9762",src:s(6492).A+"",width:"1920",height:"1042"})}),"\n",(0,i.jsx)(e.p,{children:"\u521b\u5efa\u4e00\u4e2a\u4e16\u754c\u8bd5\u8bd5\uff0c\u6ca1\u4ec0\u4e48\u95ee\u9898\u7684\u8bdd\uff0c\u5c31\u53ef\u4ee5\u9000\u51fa\u4e86\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ef\u8fd0\u884c\u7684\u9879\u76ee\u662f\u7531",(0,i.jsx)(e.strong,{children:"\u914d\u7f6e\u6587\u4ef6"}),"\u5b8c\u6210\u7684\uff0c\u5b83\u5b58\u5728\u4e8e\u4f60\u7684\u9879\u76ee\u4e0b\u7684",(0,i.jsx)(e.code,{children:".idea/workspace.xml"}),"\u4e2d\uff0c\u662f\u7531\u6784\u5efa\u81ea\u884c\u751f\u6210\u7684\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u81f3\u6b64\uff0c\u6211\u4eec\u5c31\u7b97",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u6210\u529f"}),"\u4e86\uff01\u5e86\u795d\u4e00\u4e0b\u53ed~"]}),"\n",(0,i.jsx)(e.h2,{id:"\u7ae0\u672b\u5c0f\u8bb0",children:"\u7ae0\u672b\u5c0f\u8bb0"}),"\n",(0,i.jsx)(e.p,{children:"\u662f\u4e0d\u662f\u6709\u4e9b\u7d2f\u5462\uff1f\u6211\u5199\u8fd9\u7ae0\u82b1\u4e86\u4e0d\u5c11\u65f6\u95f4\u5462\u3002\u6211\u8ba4\u4e3a\u5199\u6a21\u7ec4\u8fd9\u4ef6\u4e8b\uff0c\u6b32\u901f\u5219\u4e0d\u8fbe\u3002\u7ec6\u7ec6\u7422\u78e8\uff0c\u6216\u8bb8\u624d\u80fd\u6df1\u5ea6\u7406\u89e3\u5427\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5173\u4e8e\u6211\u7684\u6559\u7a0b\u201c\u7ec6\u81f4\u8fc7\u5ea6\u201d\u7684\u95ee\u9898\uff0c\u6211\u4f1a\u8fdb\u884c\u53cd\u601d\u7684\u3002\u4e0d\u8fc7\u6211\u8ba4\u4e3a\uff0c\u8bb2\u7684\u7ec6\u81f4\u4e00\u70b9\uff0c\u5174\u8bb8\u66f4\u80fd\u5e2e\u5230\u65b0\u624b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63d0\u9192\u4f60\u4e00\u4e0b\uff0c",(0,i.jsx)(e.strong,{children:"\u8ba9AI\u4ee3\u5199\u4ee3\u7801\u4e0d\u603b\u662f\u53ef\u53d6\u7684"}),"\uff0c\u5bf9\u4e8e\u8fd9\u79cd\u504f\u5c0f\u4f17\u7684\u9886\u57df\uff0c\u5c31\u8fdeGPT4\u90fd\u4f1a\u4e0d\u65f6\u5730\u51fa\u9519\u3002\u6240\u4ee5\uff0c\u5c3d\u5df1\u6240\u80fd\uff0c\u52aa\u529b\u63a2\u7d22\uff01"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5bf9\u4e86\uff0c\u6700\u8fd1\u5728B\u7ad9\u4e0a\u770b\u5230\u4e00\u9996\u597d\u542c\u7684\u6b4c(\u542bBGA)\uff1a\u6765\u81ea",(0,i.jsx)(e.code,{children:"Empty old City"}),"\u7684",(0,i.jsx)(e.code,{children:"Astronomy/\u5929\u6587\u5b66"}),"\uff0c\u4e16\u754c\u89c2\u8bbe\u8ba1\u4e5f\u5f88\u6709\u610f\u601d\uff0c\u5728\u6b64\u5206\u4eab\u7ed9\u4f60\uff01"]}),"\n",(0,i.jsx)("div",{style:{position:"relative",width:"100%",paddingBottom:"56.25%",height:0,overflow:"hidden"},children:(0,i.jsx)("iframe",{src:"//player.bilibili.com/player.html?isOutside=true&aid=113355796845449&bvid=BV1ZgyoYBEPw&cid=26425295593&p=1&autoplay=0&high_quality=1",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"none"},allowFullScreen:!0,sandbox:"allow-top-navigation allow-same-origin allow-forms allow-scripts"})}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsxs)(e.p,{children:["MakerTechno\u7f16\u8f91\u4e8e2024\u5e7411\u67089\u65e5\uff0c\u672c\u6587\u5206\u4eab\u81f3",(0,i.jsx)(e.code,{children:"\u51c9\u62cc\u5c0f\u9e3d"}),"\u7684\u4e2a\u4eba\u535a\u5ba2\u90e8\u7f72\uff0c\u5fae\u8c03\u540e\u5728B\u7ad9\u90e8\u7f72"]}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6539\u4e8e2025\u5e746\u670822\u65e5\uff0c\u589e\u6dfb\u4e86\u201c\u6dfb\u52a0\u63d2\u4ef6\u201d\u680f\u76ee\uff0c\u4fee\u6539\u4e86\u90e8\u5206\u5176\u5b83\u5185\u5bb9"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u7f16\u8f91\u4e8e2025\u5e748\u67083\u65e5\uff0c\u9488\u5bf9B\u7ad9\u8bc4\u8bba\u533a\u63d0\u95ee\u505a\u51fa\u4e86\u4fee\u6b63"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Copyright \xa9 2026 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(o,{...n})}):o(n)}},5733:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},5999:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728ArchivedOpenJDK\u4e0b\u8f7dJava-95332d8ddb2c4507429c31cedc7b2bb4.png"},6121:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u538b\u7f29\u5305\u5185\u5bb9-a8396029c99ef3fd9db9d592da93ceba.png"},6492:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5f39\u51fa\u6e38\u620f\u754c\u9762-888a77d645892845940cae0ddde064a8.png"},7030:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee-c3908ac6ebe5fa7ab0639b55d5b51f47.png"},7062:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA-0ef5114f7d73cbab66386a1140d32d2f.png"},7536:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939-342ca311c3eacf49f22a0154b8e00c70.png"},7851:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fdb\u5165\u540e\u7684\u6837\u5b50-2e191e13292dd320d90b736b1c338708.png"},9573:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u9879\u76ee\u8bbe\u7f6e-98c437520064a0e778ceaf6a97b7ae69.png"}}]);
\ No newline at end of file
diff --git a/docs/assets/js/a30e6b04.92047096.js b/docs/assets/js/a30e6b04.92047096.js
deleted file mode 100644
index 7b30370..0000000
--- a/docs/assets/js/a30e6b04.92047096.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[4502],{298:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava-c9b29c36cc892e1d75399f539dfb4c62.png"},600:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Github\u4e0a\u7684NeoGradle\u5e93-0fc403ccea3e56ddc490a3e3bdd12c5f.png"},612:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u9879\u76ee\u8bbe\u7f6e-98c437520064a0e778ceaf6a97b7ae69.png"},865:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762-051d5fdd00c4441b2b2725dfc0c844d1.png"},1401:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5f39\u51fa\u6e38\u620f\u754c\u9762-888a77d645892845940cae0ddde064a8.png"},1688:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java\u8def\u5f84-f5170a22bb379516188ad3355f240a11.png"},3470:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u538b\u7f29\u5305\u5185\u5bb9-a8396029c99ef3fd9db9d592da93ceba.png"},5586:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728ArchivedOpenJDK\u4e0b\u8f7dJava-95332d8ddb2c4507429c31cedc7b2bb4.png"},5609:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>h,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>t});const r=JSON.parse('{"id":"NeoForge1.21Tutorial/\u7b2c\u4e8c\u7ae0/nf1.21ep2","title":"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa","description":"\u63d0\u793a","source":"@site/tutorial/1-NeoForge1.21Tutorial/2-\u7b2c\u4e8c\u7ae0/index.md","sourceDirName":"1-NeoForge1.21Tutorial/2-\u7b2c\u4e8c\u7ae0","slug":"/nf1.21/ep2","permalink":"/docs/tutorial/nf1.21/ep2","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep2","slug":"/nf1.21/ep2"},"sidebar":"tutorialSidebar","previous":{"title":"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08","permalink":"/docs/tutorial/nf1.21/ep1"},"next":{"title":"\u7b2c\u4e09\u7ae0 \u57fa\u7840\u6982\u5ff5","permalink":"/docs/tutorial/nf1.21/ep3"}}');var i=s(4848),l=s(8453);const d={id:"nf1.21ep2",slug:"/nf1.21/ep2"},c="\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa",h={},t=[{value:"\u51c6\u5907\u5de5\u4f5c",id:"\u51c6\u5907\u5de5\u4f5c",level:2},{value:"\u5b89\u88c5IntelliJ IDEA",id:"\u5b89\u88c5intellij-idea",level:3},{value:"\u5b89\u88c5JDK",id:"\u5b89\u88c5jdk",level:3},{value:"Linux",id:"linux",level:4},{value:"MacOS",id:"macos",level:4},{value:"Windows",id:"windows",level:4},{value:"OpenJDK",id:"openjdk",level:5},{value:"OracleJDK",id:"oraclejdk",level:5},{value:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93",id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",level:3},{value:"\u989d\u5916\u7684\u8bbe\u7f6e",id:"\u989d\u5916\u7684\u8bbe\u7f6e",level:2},{value:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",level:3},{value:"\u5f00\u59cb\u6784\u5efa",id:"\u5f00\u59cb\u6784\u5efa",level:2},{value:"\u5bfc\u5165\u9879\u76ee",id:"\u5bfc\u5165\u9879\u76ee",level:3},{value:"\u6784\u5efa\u8be6\u89e3",id:"\u6784\u5efa\u8be6\u89e3",level:3},{value:"Gradle\u662f\u4ec0\u4e48",id:"gradle\u662f\u4ec0\u4e48",level:4},{value:"\u8bbe\u7f6eJava\u7248\u672c",id:"\u8bbe\u7f6ejava\u7248\u672c",level:4},{value:"\u6dfb\u52a0\u63d2\u4ef6",id:"\u6dfb\u52a0\u63d2\u4ef6",level:4},{value:"\u8bbe\u7f6e\u4ee3\u7406",id:"\u8bbe\u7f6e\u4ee3\u7406",level:4},{value:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",level:4},{value:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",level:4},{value:"\u9047\u5230\u56f0\u96be",id:"\u9047\u5230\u56f0\u96be",level:4},{value:"\u6d4b\u8bd5\u7a0b\u5e8f",id:"\u6d4b\u8bd5\u7a0b\u5e8f",level:3},{value:"\u7ae0\u672b\u5c0f\u8bb0",id:"\u7ae0\u672b\u5c0f\u8bb0",level:2}];function o(n){const e={a:"a",blockquote:"blockquote",code:"code",del:"del",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"\u7b2c\u4e8c\u7ae0-\u73af\u5883\u6784\u5efa",children:"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u4e00\u73af\u8282\u4e2d\u7684\u90e8\u5206\u4fe1\u606f\u4f60\u5e94\u8be5\u5728\u4e4b\u524d\u7684\u7f16\u7a0b\u5b66\u4e60\u4e2d\u6709\u6240\u4e86\u89e3\u3002\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u5b89\u88c5IDEA\u548cJDK\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E9%A2%9D%E5%A4%96%E7%9A%84%E8%AE%BE%E7%BD%AE",children:"\u73af\u5883\u8bbe\u7f6e"})]}),"\uff1b\u5982\u679c\u4f60\u5df2\u7ecf\u8bbe\u7f6e\u8fc7Java\u73af\u5883\uff0c\u53ef\u4ee5",(0,i.jsxs)(e.strong,{children:["\u8df3\u81f3",(0,i.jsx)(e.a,{href:"#%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA",children:"\u6784\u5efa"})]}),"\uff1b\u5982\u679c\u4f60\u77e5\u9053\u5982\u4f55\u6784\u5efa\uff0c\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7\u672c\u7ae0\u8282"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),(0,i.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,i.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u51c6\u5907\u5de5\u4f5c",children:"\u51c6\u5907\u5de5\u4f5c"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5de5\u6b32\u5584\u5176\u4e8b\uff0c\u5fc5\u5148\u5229\u5176\u5668\u3002"}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e0b\u9762\u7684\u6b65\u9aa4\u6d89\u53ca\u5f88\u591a\u7f51\u7edc\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u540c\u65f6\u8fdb\u884c"}),"\u591a\u4e2a\u6b65\u9aa4\u7684\u4e0b\u8f7d\u548c\u5b89\u88c5\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5intellij-idea",children:"\u5b89\u88c5IntelliJ IDEA"}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u662f\u4e00\u6b3e\u5f3a\u5927\u7684",(0,i.jsx)(e.strong,{children:"\u4ee3\u7801\u7f16\u8f91\u5668"}),"\uff0c\u5bf9Java\u548cKotlin\u7684\u652f\u6301\u5c24\u4e3a\u7a81\u51fa\u3002\u4f7f\u7528IDEA\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u51cf\u5c11\u5f88\u591a\u4e0d\u5fc5\u8981\u7684\u9879\u76ee\u8bbe\u7f6e\u5de5\u4f5c"}),"\uff0c\u4e0d\u8fc7\u5982\u679c\u4f60\u975e\u8981\u7528Eclipse\u6216\u8005VS Code\uff0c\u4e5f\u4e0d\u662f\u4e0d\u884c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["IDEA\u5206\u4e3a",(0,i.jsx)(e.strong,{children:"\u4e13\u4e1a\u7248"}),"\u548c",(0,i.jsx)(e.strong,{children:"\u793e\u533a\u7248"}),"\uff0c\u4e24\u8005\u529f\u80fd\u533a\u522b\u4e0d\u5927\uff0c\u9009\u62e9\u4efb\u4f55\u4e00\u79cd",(0,i.jsx)(e.strong,{children:"\u90fd\u4e0d\u4f1a"}),"\u4e0e\u672c\u6559\u7a0b\u63d0\u4f9b\u7684\u4efb\u610f\u4e00\u4e2a\u6b65\u9aa4\u51b2\u7a81\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u4e13\u4e1a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u6536\u8d39"}),"\u7684\uff0c\u793e\u533a\u7248\u662f",(0,i.jsx)(e.strong,{children:"\u4e0d\u6536\u8d39"}),"\u7684\u3002\u4e13\u4e1a\u7248\u53ea\u6709\u4e00\u4e9b\u4f60\u4e00\u822c\u7528\u4e0d\u5230\u7684\u9ad8\u7ea7\u529f\u80fd\uff0c\u6240\u4ee5\u6ca1\u6709IDEA\u7684\u4e0b\u793e\u533a\u7248\u5c31\u884c\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dIDEA\uff0c\u6ce8\u610f\u793e\u533a\u7248(Community Edition)",(0,i.jsx)(e.strong,{children:"\u5728\u9875\u9762\u4e0b\u90e8"}),"\uff0c\u4f60\u770b\u5230\u7684\u7b2c\u4e00\u4e2a\u662f\u4e13\u4e1a\u7248(Ultimate)\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/?section=windows",children:"Download IntelliJ IDEA \u2013 The Leading Java and Kotlin IDE"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA",src:s(7473).A+"",width:"1912",height:"697"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u7ecf\u8fc7\u6211\u6d4b\u8bd5\uff0c\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Windows7"}),"\u7cfb\u7edf\u7684\u5927\u90e8\u5206\u7535\u8111",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u542f\u52a8"}),"\u5b89\u88c5\u540e\u7684",(0,i.jsx)(e.strong,{children:"2024\u7248"}),"IDEA\u3002\u5982\u679c\u4f60\u4f7f\u7528Windows7\uff0c\u8bf7\u5728\u8fd9\u91cc\u5bfb\u627e\u5e76\u4e0b\u8f7d",(0,i.jsx)(e.strong,{children:"2023.1"}),"\u7684IDEA Community\u7248\uff1a ",(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/other.html",children:"Other Versions - IntelliJ IDEA"})]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5b89\u88c5\u7684\u65f6\u5019\uff0c",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u4fee\u6539\u5b89\u88c5\u8def\u5f84\u5230\u522b\u7684\u5b58\u50a8\u76d8\u91cc\u3002",(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"}),"\u5b89\u88c5\u5230\u4f60\u65b0\u5efa\u7684\u4e00\u4e2a\u547d\u540d\u4e3a\u201cIDEA\u201d\u7684\u6587\u4ef6\u5939\u91cc\uff0c\u8fd9\u6837",(0,i.jsx)(e.strong,{children:"\u66f4\u65b9\u4fbf\u7ba1\u7406"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u521d\u6b21\u542f\u52a8IDEA\uff0c\u4f1a\u5f39\u51fa\u7528\u6237\u534f\u8bae\u8bb8\u53ef\u548c\u534f\u52a9\u8f6f\u4ef6\u6539\u8fdb\u7684\u5171\u4eab\u4fe1\u606f\u8bb8\u53ef\uff0c\u65b0\u7248\u672c\u4f1a\u5e2e\u52a9\u4f60\u8bbe\u7f6e\u8bed\u8a00\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u542f\u52a8IDEA\u540e\uff0c\u4e0d\u8981\u6025\u7740\u65b0\u5efa\u9879\u76ee(\u4e5f\u6839\u672c\u7528\u4e0d\u5230\u65b0\u5efa)\uff0c\u6211\u4eec\u8fd8",(0,i.jsx)(e.strong,{children:"\u7f3a\u5c11\u4e00\u4e2a\u5173\u952e\u6b65\u9aa4"}),"\u3002"]}),"\n",(0,i.jsx)(e.h3,{id:"\u5b89\u88c5jdk",children:"\u5b89\u88c5JDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u4eec\u5f00\u53d1\u7684\u6a21\u7ec4\u662f",(0,i.jsx)(e.strong,{children:"\u9488\u5bf9Minecraft1.21"}),"\u7684\uff0cNeoForge\u5bf9\u6b64\u63d0\u4f9b\u7684",(0,i.jsx)(e.strong,{children:"Gradle\u6784\u5efa"}),"\u8981\u6c42\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"Java21"}),"\u3002\u6240\u4ee5\uff0c\u7b2c\u4e00\u6b65\uff0c\u5b89\u88c5\u4e00\u4e2a21\u7248\u672c\u7684JDK\u5427\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["JDK\u5206\u4e3a\u4e24\u79cd\uff0cOpenJDK\u548cOracleJDK\uff0c\u6709\u5174\u8da3\u7684\u53ef\u4ee5\u5728",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/qq_33326733/article/details/138875513",children:"\u8fd9\u7bc7\u6587\u7ae0"}),"\u8fdb\u884c\u4e86\u89e3\uff0c\u5728\u6b64\u6211\u4eec\u63a8\u8350\u4f7f\u7528OpenJDK"]}),"\n",(0,i.jsx)(e.h4,{id:"linux",children:"Linux"}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6587\u4f5c\u8005\u4e3b\u8981\u4f7f\u7528Windows10\u7cfb\u7edf\uff0c\u4e0d\u4f1a\u5bf9Linux\u7cfb\u7edf\u8fdb\u884c\u8fc7\u591a\u6307\u5bfc\u3002\u4ee5\u4e0b\u4e0b\u8f7d\u5185\u5bb9\uff0c\u4ee5\u53ca\u540e\u9762\u7684\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u8bf7\u81ea\u884c\u9605\u8bfb",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/u013250861/article/details/131141098",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsx)(e.h4,{id:"macos",children:"MacOS"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u53c2\u8003",(0,i.jsx)(e.a,{href:"https://blog.csdn.net/Lwehne/article/details/135867512",children:"\u8fd9\u7bc7\u6587\u7ae0"})]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u54c7\u662f\u82f9\u679c\uff0c\u7a00\u5ba2\u6b38\uff01\u6211\u865a\u62df\u673a\u8dd1XCode\u7684iOS Simulator\u592a\u5361\u4e86\uff0c\u628a\u4f60\u7684\u501f\u6211\u7528\u51e0\u5929(\u6ed1\u7a3d)"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"windows",children:"Windows"}),"\n",(0,i.jsx)(e.h5,{id:"openjdk",children:"OpenJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),".0.2\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dzip\u5305\u5373\u53ef\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://jdk.java.net/archive/",children:"Archived OpenJDK GA Releases"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622204204167",src:s(5586).A+"",width:"1210",height:"948"})}),"\n",(0,i.jsx)(e.h5,{id:"oraclejdk",children:"OracleJDK"}),"\n",(0,i.jsxs)(e.p,{children:["\u8bf7\u5728\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u5b98\u65b9"}),"\u9875\u9762\u4e0b\u8f7dJDK\uff0c\u9009\u62e9Java",(0,i.jsx)(e.strong,{children:"21"}),"\uff0c\u9009\u62e9Windows\uff0c\u4e0b\u8f7dexe\u5b89\u88c5\u5305\u6216msi\u5b89\u88c5\u5305\u90fd\u53ef\u4ee5\uff0c\u4f46\u662f\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u522b\u9009\u9519\u4e86"}),"\u3002"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://www.oracle.com/java/technologies/downloads/#java21",children:"Java Downloads (JDK21 for Windows) | Oracle"})}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Oracle\u5b98\u7f51\u4e0b\u8f7dJava",src:s(298).A+"",width:"1912",height:"792"})}),"\n",(0,i.jsx)(e.p,{children:"\u4e0b\u8f7d\u5b8c\u6210\u540e\uff0c\u53cc\u51fb\u5b89\u88c5\u5305\uff0c\u6309\u7167\u5b89\u88c5\u5411\u5bfc\u63d0\u793a\u5b89\u88c5(\u4e0d\u5efa\u8bae\u8c03\u6574\u4efb\u4f55\u53ef\u8c03\u53c2\u6570\uff0c\u76f4\u63a5Next\u5373\u53ef)"}),"\n",(0,i.jsx)(e.h3,{id:"\u4e0b\u8f7dneoforge\u7684\u9879\u76ee\u5e93",children:"\u4e0b\u8f7dNeoForge\u7684\u9879\u76ee\u5e93"}),"\n",(0,i.jsx)(e.p,{children:"\u4e3a\u4e86\u5b8c\u6210\u9879\u76ee\u7684\u6784\u5efa\u5e76\u5f15\u5165Minecraft\u73af\u5883\uff0c\u6211\u4eec\u9700\u8981\u4e0b\u8f7dNeoForge\u7684\u6784\u5efa\u9879\u76ee\u5e93\u5e76\u89e3\u538b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u76ee\u524d\u6709\u4e24\u79cd\u6784\u5efa\u5e93\u4f9b\u5f00\u53d1\u8005\u9009\u62e9\uff1a",(0,i.jsx)(e.strong,{children:"ModDevGradle"}),"\u548c",(0,i.jsx)(e.strong,{children:"NeoGradle"}),"\uff0c\u4e24\u8005",(0,i.jsx)(e.strong,{children:"\u533a\u522b\u4e0d\u5927"}),"\uff0c\u5b83\u4eec",(0,i.jsx)(e.strong,{children:"\u90fd\u662fMod Developer Kit(MDK)"}),"\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u672c\u6559\u7a0b\u4f7f\u7528ModDevGradle"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u5bf9\u4e8e\u5982\u4f55\u51c6\u5907\u6784\u5efa\uff0cNeoForge\u7684\u6587\u6863\u662f\u5982\u6b64\u89e3\u91ca\u7684\uff1a"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["Open the Mod Developer Kit (MDK) (either ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-ModDevGradle",children:"ModDevGradle"})," or ",(0,i.jsx)(e.a,{href:"https://github.com/NeoForgeMDKs/MDK-1.21-NeoGradle",children:"NeoGradle"}),') GitHub repository, click "Use this template" and clone the newly-created repository to your local machine.',"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"If you do not want to use GitHub, or if you want to get the template for an older commit, you can also download the ZIP of the repository (under Code -> Download ZIP) and extract it."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e5f\u5c31\u662f\u8bf4\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u76f4\u63a5"}),"\u5728GitHub\u4e0a",(0,i.jsx)(e.strong,{children:"\u521b\u5efa"}),"\u4e00\u4e2a\u4ee5MDK\u4e3a\u6a21\u677f\u7684\u9879\u76ee\uff0c\u518d\u901a\u8fc7IDEA",(0,i.jsx)(e.strong,{children:"\u514b\u9686"}),"\u5230\u672c\u5730\u3002\u8fd9\u4f1a\u5bfc\u81f4\u4f60\u7684\u9879\u76ee\u4e0a\u51fa\u73b0\u201d\u4f7f\u7528xxx\u4e3a\u6a21\u677f\u201c\u7684\u6807\u8bc6\u3002\u5f53\u7136\u4f60",(0,i.jsx)(e.strong,{children:"\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u4f7f\u7528"}),"GitHub\u7684\u6a21\u677f\u9879\u76ee\uff0c\u76f4\u63a5\u70b9\u51fbCode\u6309\u94ae\u7136\u540e",(0,i.jsx)(e.strong,{children:"\u4e0b\u8f7dzip\u5230\u672c\u5730"}),"(\u6211\u7ecf\u5e38\u8fd9\u4e48\u5e72)\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u7a0d\u7b49\u4e00\u4e0b\uff01\u4f60\u662f\u5728\u5f00\u53d11.21.x\u5417\uff1f\u5982\u679c\u662f\u8fd9\u6837\uff0c\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u4f5c\u4e3a\u53c2\u8003"}),"\uff01\u8fd9\u91cc\u7ed9\u51fa\u7684\u94fe\u63a5",(0,i.jsx)(e.strong,{children:"\u5168\u90fd\u6307\u54111.21\u800c\u4e0d\u662f1.21.x"}),"\uff01\u5982\u679c\u4f60\u8981\u4e0b\u8f7d1.21.x\u7684MDK\u5305\uff0c\u8bf7\u5728",(0,i.jsx)(e.a,{href:"https://github.com/orgs/NeoForgeMDKs/repositories?type=all",children:"\u8fd9\u91cc"}),"\u9009\u62e9\u5bf9\u5e94\u7248\u672c\u548c\u5bf9\u5e94\u6784\u5efa\u5e93\u4e0b\u8f7d\uff01\u4e0d\u540c\u7248\u672c\u95f4\u4f1a",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff01"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Github\u4e0a\u7684NeoGradle\u5e93",src:s(600).A+"",width:"1564",height:"718"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"GitHub\u5728\u56fd\u5185\u7684\u8bbf\u95ee\u5e76\u4e0d\u7a33\u5b9a\u3002\u5982\u679c\u4f60\u9047\u5230\u7f51\u7edc\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u4e0d\u662f\u5e94\u8be5\u53bb\u627e\u627e\u4ec0\u4e48\u89e3\u51b3\u65b9\u6848\u5462\uff1f(\u54b3\u54b3)"}),"\n",(0,i.jsx)(e.p,{children:"ps: \u8bf7\u9075\u5b88\u56fd\u5bb6\u6cd5\u5f8b\u89c4\u5b9a\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u989d\u5916\u7684\u8bbe\u7f6e",children:"\u989d\u5916\u7684\u8bbe\u7f6e"}),"\n",(0,i.jsx)(e.h3,{id:"java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u8fd0\u884c\u5f00\u53d1\u73af\u5883\u65f6\uff0c\u6211\u4eec\u7ecf\u5e38\u9047\u5230\u4e00\u4e9b\u5173\u4e8e\u7f16\u8bd1\u5668",(0,i.jsx)(e.strong,{children:"\u7248\u672c"}),"\u7684\u5c0f\u95ee\u9898\u3002\u8b6c\u5982\u4f60\u4e3a\u4e86\u548c\u670b\u53cb\u73a9\u8d5b\u6587\u79d1\u6280\u6574\u5408\u5305\u800c\u540c\u65f6\u5b89\u88c5\u4e86JDK8\u3001\u4e3a\u4e86\u5de5\u4f5c\u4f7f\u7528JDK11\uff0c\u4ea6\u6216\u662f\u5728\u4e4b\u524d\u7684\u5b66\u4e60\u4e2d\u4f7f\u7528\u4e86JDK23\u7b49\uff0cIDEA\u548cPCL2\u81ea\u7136\u4f1a",(0,i.jsx)(e.strong,{children:"\u5e2e\u4f60\u9009\u62e9\u5408\u9002\u7684Java\u7248\u672c"}),"\u3002\u4f46\u662f\uff0c\u6211\u4eec\u7684Gradle\u548ccmd\u5c31",(0,i.jsx)(e.strong,{children:"\u6ca1\u8fd9\u4e48\u806a\u660e"}),"\u3002\u56e0\u6b64\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf"}),"\u6210\u4e3a\u4e86\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5fc5\u4e0d\u53ef\u5c11"}),"\u7684\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u6309\u4e0bWin+R"}),"\u6253\u5f00\u8fd0\u884c\uff0c\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u540e",(0,i.jsxs)(e.strong,{children:["\u6309\u4f4fCtrl+Shift(\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u6253\u5f00)",(0,i.jsx)(e.strong,{children:"\u5e76\u56de\u8f66\uff0c\u5141\u8bb8\u7ba1\u7406\u5458\u6743\u9650\u7684\u63d0\u793a\u540e\uff0c\u6253\u5f00"}),"\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u7a97\u53e3"]}),"\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-bash",children:"rundll32 sysdm.cpl,EditEnvironmentVariables\n"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u5176\u5b9e",(0,i.jsx)(e.strong,{children:"\u7b49\u6548\u4e8e"}),"\uff1a\u53f3\u952e\u6b64\u7535\u8111->\u70b9\u51fb\u5c5e\u6027->\u70b9\u51fb\u4fa7\u8fb9\u201c\u9ad8\u7ea7\u7cfb\u7edf\u8bbe\u7f6e\u201d->(\u6743\u9650\u8ba4\u8bc1)->\u70b9\u51fb\u201c\u73af\u5883\u53d8\u91cf\u201d"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u4f1a\u770b\u5230\u4e24\u4e2a\u680f\u76ee\uff0c\u8bf7\u5728",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf\u680f\u76ee"}),"\u91cc\u8fdb\u884c\u64cd\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u201c\u73af\u5883\u53d8\u91cf\u201d\u7684\u65b0\u5efa\u7b49\u6309\u94ae",(0,i.jsx)(e.strong,{children:"\u65e0\u6cd5\u70b9\u51fb"}),"\uff0c\u8bf4\u660e\u4f60",(0,i.jsx)(e.strong,{children:"\u672a\u8d4b\u4e88\u7ba1\u7406\u5458\u6388\u6743"}),"\u6216",(0,i.jsx)(e.strong,{children:"\u6743\u9650\u4e0d\u591f"}),"\u3002\u8fd9\u79cd\u60c5\u51b5\u4e0b",(0,i.jsx)(e.strong,{children:"\u8bf7\u6309\u7167\u201c\u7b49\u6548\u4e8e\u201d\u4e2d\u7684\u6b65\u9aa4\u64cd\u4f5c"}),"\uff0c\u6216\u8054\u7cfb\u8bbe\u5907\u7ba1\u7406\u5458\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u65b0\u5efa\u201d\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u6846\u4e2d\u7684\u201d\u53d8\u91cf\u540d\u201c\u5904\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA21_HOME"}),"\uff0c\u5728\u53d8\u91cf\u503c\u8f93\u5165\u4f60\u5b89\u88c5JDK\u7684\u6587\u4ef6\u5939\u4f4d\u7f6e\uff0c\u5982\u679c\u4f60\u6ca1\u6539\u8fc7\uff0c\u4e00\u822c\u53ef\u4ee5\u5728",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java"}),"\u7684\u5730\u65b9\u627e\u5230\u5b83\u3002\u6211\u7684\u53d8\u91cf\u503c\u662f",(0,i.jsx)(e.code,{children:"C:\\Program Files\\Java\\jdk-21"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java21\u8def\u5f84",src:s(9667).A+"",width:"1062",height:"310"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u6309\u94ae\uff0c\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u518d\u6b21\u70b9\u51fb\u201c\u65b0\u5efa\u201d\uff0c\u53d8\u91cf\u540d\u8f93\u5165",(0,i.jsx)(e.code,{children:"JAVA_HOME"}),"\uff0c\u53d8\u91cf\u503c\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA21_HOME%"}),"\uff0c\u6ce8\u610f",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5c11\u4e86\u767e\u5206\u53f7"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-Java\u8def\u5f84",src:s(1688).A+"",width:"1065",height:"395"})}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63a5\u4e0b\u6765\uff0c\u7ffb\u627e\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u7cfb\u7edf\u53d8\u91cf"}),"\uff0c\u627e\u5230\u5e76\u53cc\u51fb\u201c",(0,i.jsx)(e.strong,{children:"Path"}),'"\u8fd9\u4e2a\u503c\uff0c\u6253\u5f00\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\uff0c\u70b9\u51fb\u73af\u5883\u53d8\u91cf\u7684\u201c\u65b0\u5efa\u201d\uff0c\u586b\u5165',(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u5e76\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u5e76\u9000\u51fa\u7f16\u8f91\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f7f\u7528Windows7\u7684\u7528\u6237",(0,i.jsx)(e.strong,{children:"\u5e76\u6ca1\u6709"}),"\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u7684\u5355\u72ec\u7a97\u53e3\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53cc\u51fb\u4f1a\u5f39\u51fa\u666e\u901a\u7684\u7cfb\u7edf\u53d8\u91cf\u7f16\u8f91\u3002\u8bf7",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5220\u9664"}),"\u53d8\u91cf\u503c\u7684\u4efb\u4f55\u5185\u5bb9\uff01\u5728\u7ed3\u5c3e\u5904\u6dfb\u52a0\u4e00\u4e2a\u82f1\u6587\u5206\u9694\u7b26",(0,i.jsx)(e.code,{children:";"}),"\uff0c\u5e76\u8f93\u5165",(0,i.jsx)(e.code,{children:"%JAVA_HOME%"}),"\uff0c\u70b9\u51fb\u201c\u786e\u8ba4\u201d\u5b8c\u6210\u7f16\u8f91"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u53d1\u73b0\u4f60\u7684Path\u91cc\u9762",(0,i.jsx)(e.strong,{children:"\u5df2\u7ecf\u6709"}),"\u7c7b\u4f3c\u914d\u7f6e\u4e86\uff0c\u4f60\u5c31\u4e0d\u9700\u8981\u8fdb\u884c\u8fd9\u6b65\u4e86\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5728Path\u6dfb\u52a0Java",src:s(6769).A+"",width:"1116",height:"643"})}),"\n",(0,i.jsx)(e.h3,{id:"idea\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e",children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u5b89\u88c5IDEA\u7684\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u201c",(0,i.jsx)(e.strong,{children:"\u9009\u62e9\u8bed\u8a00"}),"\u201d\u7684\u6b65\u9aa4\uff0c\u5e76\u4e14\u4e2d\u6587\u6b63\u5e38\uff0c\u4f60\u53ef\u4ee5",(0,i.jsx)(e.strong,{children:"\u8df3\u8fc7"}),"\u8fd9\u90e8\u5206"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["2024\u53ca\u4ee5\u524d\u7684IDEA\u7684\u9ed8\u8ba4\u8bed\u8a00\u662f",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\uff0c\u4e0d\u8fc7\u4e0d\u7528\u62c5\u5fc3\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.strong,{children:"\u5b89\u88c5\u4e2d\u6587\u63d2\u4ef6"}),"\u7684\u65b9\u6cd5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd0\u884cIDEA\uff0c\u5728\u7a97\u53e3\u4e2d\u6309\u4e0b\u7ec4\u5408\u952e",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u6253\u5f00\u8bbe\u7f6e\uff0c\u5728\u5de6\u4fa7\u680f\u76ee\u9009\u62e9\u201c",(0,i.jsx)(e.strong,{children:"Plugins"}),"\u201d\uff0c\u5728Marketplace\u91cc",(0,i.jsx)(e.strong,{children:"\u641c\u7d22\u201cChinese\u201d"}),"\uff0c\u5b89\u88c5",(0,i.jsx)(e.strong,{children:"\u7b80\u4f53\u4e2d\u6587"}),"\u8bed\u8a00\u5305\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u7684\u63d2\u4ef6\u7ba1\u7406\u754c\u9762",src:s(865).A+"",title:"\u63d2\u4ef6\u7ba1\u7406\u957f\u8fd9\u4e2a\u6837\u5b50",width:"1247",height:"897"})}),"\n",(0,i.jsx)(e.p,{children:"\u5b89\u88c5\u5b8c\u6210\u540e\uff0cIDEA\u4f1a\u63d0\u793a\u4f60\u91cd\u65b0\u542f\u52a8IDEA\u7a0b\u5e8f\uff0c\u70b9\u51fbEnter\u81ea\u52a8\u91cd\u542f\u6216\u624b\u52a8\u5173\u95ed\u518d\u5f00\u542f\u90fd\u53ef\u4ee5\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"\u5f00\u59cb\u6784\u5efa",children:"\u5f00\u59cb\u6784\u5efa"}),"\n",(0,i.jsx)(e.h3,{id:"\u5bfc\u5165\u9879\u76ee",children:"\u5bfc\u5165\u9879\u76ee"}),"\n",(0,i.jsx)(e.p,{children:"\u7ecf\u8fc7\u4e86\u4e00\u6bb5\u65f6\u95f4\u7684\u51c6\u5907\uff0c\u6211\u4eec\u5df2\u7ecf\u5b8c\u6210\u4e86\u521d\u6b65\u7684\u51c6\u5907\uff0c\u53ef\u4ee5\u6b63\u5f0f\u5f00\u59cb\u6784\u5efa\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6b63\u5de7\uff0c\u6211\u624b\u5934\u6709\u4e9b\u8ba1\u5212\u7684\u6a21\u7ec4\uff0c\u5c31\u968f\u7740\u5199\u6a21\u7ec4\u4e00\u4e00\u4ecb\u7ecd\u600e\u4e48\u5199\u5427\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u5728\u524d\u6587\u9009\u62e9\u4e86",(0,i.jsx)(e.strong,{children:"\u5728GitHub\u4e0a\u8fdb\u884c\u514b\u9686"}),"\uff0c\u53ea\u9700\u8981\u5728\u672c\u5730",(0,i.jsx)(e.strong,{children:"VCS"}),"\u514b\u9686\u8fc7\u6765\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u9009\u62e9\u4e0b\u8f7dzip\u6587\u4ef6\uff0c\u9996\u5148\uff0c\u8981\u628a\u4e0b\u8f7d\u597d\u7684\u538b\u7f29\u5305\u6574\u4e2a",(0,i.jsx)(e.strong,{children:"\u89e3\u538b"}),"\u6210\u4e3a\u4e00\u4e2a\u5355\u72ec\u7684\u9879\u76ee\u6587\u4ef6\u5939(\u6211\u4f1a\u628a\u89e3\u538b\u5185\u5bb9\u585e\u5230Projects\u6587\u4ef6\u5939\u91cc)\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u538b\u7f29\u5305\u5185\u5bb9",src:s(3470).A+"",width:"1321",height:"738"})}),"\n",(0,i.jsxs)(e.p,{children:["\u7136\u540e\uff0c\u5c06\u8fd9\u4e2a\u6587\u4ef6\u5939\u540d\u79f0\u6539\u6210\u52a0\u8f7d\u5668\u540d+\u6e38\u620f\u7248\u672c+\u6211\u4eec\u81ea\u5df1\u5b9a\u4e49\u7684\u6a21\u7ec4\u540d(",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u5e26\u7a7a\u683c\u3001\u7279\u6b8a\u7b26\u53f7\u7b49"}),")\uff0c\u5e76\u5728IDEA\u4e2d\u70b9\u51fb\u201c\u6253\u5f00\u9879\u76ee\u201d\uff0c\u9009\u62e9\u6211\u4eec\u521a\u521a\u89e3\u538b\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e00\u6b65\u5176\u5b9e\u5e76\u4e0d\u91cd\u8981\uff0c\u4f46\u662f\u4f60\u5e94\u8be5\u610f\u8bc6\u5230\u4e00\u4e2a\u597d\u7684\u547d\u540d\u4e60\u60ef\u53ef\u4ee5\u5728\u65e5\u540e\u7684\u5de5\u4f5c\u4e2d\u7701\u53bb\u4e00\u4e9b\u4e0d\u5fc5\u8981\u7684\u601d\u8003\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u6587\u4ef6\u5939",src:s(7234).A+"",width:"249",height:"30"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939",src:s(7111).A+"",width:"984",height:"805"})}),"\n",(0,i.jsx)(e.p,{children:"\u7136\u540e\uff0c\u6211\u4eec\u5c31\u6210\u529f\u8fdb\u5165\u9879\u76ee\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fdb\u5165\u540e\u7684\u6837\u5b50",src:s(9334).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["(",(0,i.jsx)(e.del,{children:"\u4e0d\u8981\u5728\u610f\u90a3\u53ea\u684c\u5ba0\uff0c\u540e\u9762\u4f60\u8fd8\u4f1a\u7ecf\u5e38\u89c1\u5230\u5979\u7684"}),")"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u6211\u7684IDEA\u4ecd\u7136\u4f7f\u7528",(0,i.jsx)(e.strong,{children:"\u65e7\u7248UI"}),"\uff0c\u56e0\u4e3a\u6211\u4e0d\u4e60\u60ef\u65b0UI\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684IDEA\u548c\u6211\u7684\u754c\u9762\u5206\u5e03",(0,i.jsx)(e.strong,{children:"\u6709\u5dee\u5f02"}),"\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u8981\u62c5\u5fc3"}),"\uff0c\u8fd9\u662f",(0,i.jsx)(e.strong,{children:"\u6b63\u5e38\u73b0\u8c61"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"\u6784\u5efa\u8be6\u89e3",children:"\u6784\u5efa\u8be6\u89e3"}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u8fdb\u5165\u9879\u76ee\u540e\uff0c\u4f60\u7684IDEA\u5c31\u5f00\u59cb\u81ea\u52a8\u8fd0\u884cGradle\u4e86\uff0c\u6784\u5efa\u4f1a\u5f88\u8017\u8d39\u65f6\u95f4\uff0c\u4ece15\u5206\u949f\u5230\u4e00\u4e24\u4e2a\u5c0f\u65f6\u4e0d\u7b49\uff0c\u5177\u4f53\u89c6\u7f51\u7edc\u73af\u5883\u800c\u8bba\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6784\u5efa\u5931\u8d25\uff1f\u6784\u5efa\u4e0d\u52a8\uff1f\u522b\u6025\uff0c\u6211\u4eec\u5148\u6765\u4e86\u89e3\u4e00\u4e0bGradle\u6784\u5efa\u7cfb\u7edf\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.h4,{id:"gradle\u662f\u4ec0\u4e48",children:"Gradle\u662f\u4ec0\u4e48"}),"\n",(0,i.jsx)(e.p,{children:"Gradle \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u6784\u5efa\u81ea\u52a8\u5316\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u8f6f\u4ef6\u9879\u76ee\u3002\u5b83\u7279\u522b\u9002\u7528\u4e8e\u591a\u8bed\u8a00\u9879\u76ee\uff0c\u5e76\u4e14\u53ef\u4ee5\u5904\u7406\u590d\u6742\u7684\u6784\u5efa\u9700\u6c42\u3002\u76f8\u6bd4\u4e8e\u5176\u4ed6\u6784\u5efa\u5de5\u5177\uff0c\u6bd4\u5982 Apache Maven \u548c Ant\uff0cGradle \u63d0\u4f9b\u4e86\u66f4\u7075\u6d3b\u548c\u5f3a\u5927\u7684\u6784\u5efa\u811a\u672c\uff0c\u56e0\u4e3a\u5b83\u4f7f\u7528\u4e86\u57fa\u4e8e Groovy \u6216 Kotlin \u7684\u9886\u57df\u7279\u5b9a\u8bed\u8a00\uff08DSL\uff09"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u8fd9\u4e2a\u4e1c\u897f\u8d1f\u8d23\u7ba1\u7406\u4f60\u7684\u9879\u76ee\u4e2d\u4e00\u5806\u5806\u7684\u5e93\u3001\u4e00\u645e\u645e\u7684\u8fd0\u884c\u811a\u672c\u548c\u5176\u4ed6\u76f8\u5173\u7ef4\u62a4\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u53ef\u4ee5\u62d6\u62fd\u6253\u5f00",(0,i.jsx)(e.code,{children:"build.gradle"}),"\uff0c\u770b\u4e00\u773cGroovy\u7684\u8bed\u6cd5\uff0c\u4e0d\u8fc7\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u4fee\u6539\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6ejava\u7248\u672c",children:"\u8bbe\u7f6eJava\u7248\u672c"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684Gradle\u6784\u5efa\u51fa\u5e08\u672a\u6377\u8eab\u5148\u6b7b\uff0c\u63d0\u793a",(0,i.jsx)(e.strong,{children:"Java\u7248\u672c\u6709\u95ee\u9898"}),"\u3002\u8bf7\u6309\u7167\u4e0b\u9762\u7684\u65b9\u6cd5",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6e\u7248\u672c"}),"\uff1a"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u6784\u5efa\u3001\u6267\u884c\u3001\u90e8\u7f72 -> \u6784\u5efa\u5de5\u5177 -> Gradle"}),"\u4e2d\uff0c\u9009\u62e9\u4f60\u7684\u6a21\u5757\uff0c",(0,i.jsx)(e.strong,{children:"\u8bbe\u7f6eSDK"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee",src:s(6135).A+"",width:"1247",height:"897"})}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u5b8c\u6210\u4e00\u6b21\u8bbe\u7f6e\u3002\u63a5\u4e0b\u6765\uff0c\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Shift+Alt+S"}),"\uff0c\u547c\u51fa\u9879\u76ee\u5c5e\u6027\u9762\u677f\uff0c\u5728\u201c",(0,i.jsx)(e.strong,{children:"\u9879\u76ee"}),"\u201d\u4e2d\u9009\u62e9",(0,i.jsx)(e.strong,{children:"SDK\u7248\u672c"}),"\uff0c\u5e76\u70b9\u51fb\u786e\u5b9a\uff0c\u5b8c\u6210JDK\u7248\u672c\u7684\u8bbe\u7f6e\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u9879\u76ee\u8bbe\u7f6e",src:s(612).A+"",width:"1296",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd8\u662f\u6709\u95ee\u9898\uff1f\u56de\u4e0a\u9762",(0,i.jsx)(e.a,{href:"#java%E7%8E%AF%E5%A2%83%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:"Java\u73af\u5883\u76f8\u5173\u8bbe\u7f6e"}),"\u8c03\u7406\u4f60\u7684\u73af\u5883\u53bb\uff01"]}),"\n",(0,i.jsx)(e.h4,{id:"\u6dfb\u52a0\u63d2\u4ef6",children:"\u6dfb\u52a0\u63d2\u4ef6"}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u7406\u8bf4\uff0cIDEA\u4f1a\u5728\u4f60\u5bfc\u5165\u9879\u76ee\u540e\u63a8\u8350\u4e00\u4e2a\u53eb\u505a",(0,i.jsx)(e.code,{children:"Minecraft Development"}),"\u7684\u63d2\u4ef6\uff0c\u5982\u679c\u4f60\u6ca1\u6709\u5b89\u88c5\uff0c\u53ef\u80fd(\u4ea6\u6216\u662f\u5fc5\u7136)\u5f15\u53d1\u6784\u5efa\u9519\u8bef\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"Minecraft Development"}),"\u662f\u4e00\u4e2a\u4e13\u95e8\u63d0\u4f9b\u7ed9\u6211\u7684\u4e16\u754c\u793e\u533a\u5185\u5bb9\u5f00\u53d1\u8005\u7684\u63d2\u4ef6\uff0c\u63d0\u4f9b\u4e86\u5305\u62ec\u63d2\u4ef6\u5f00\u53d1\u3001\u6a21\u7ec4\u5f00\u53d1\u7b49\u4e00\u7cfb\u5217\u652f\u6301\uff0c\u8fd8\u5185\u7f6e\u4e86\u6587\u672c\u5f62\u6001NBT\u7f16\u8f91\u5668\u548c",(0,i.jsx)(e.strong,{children:"Mixin\u65ad\u70b9\u8c03\u8bd5\u652f\u6301"}),"\uff0c\u662f\u5f00\u53d1\u6a21\u7ec4\u5fc5\u4e0d\u53ef\u5c11\u7684\u5f3a\u529b\u63d2\u4ef6\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"image-20250622170500495",src:s(8988).A+"",width:"357",height:"79"})}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00\u8bbe\u7f6e\u7684\u5feb\u6377\u952e\u4e0a\u6587",(0,i.jsx)(e.a,{href:"#idea%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE",children:(0,i.jsx)(e.strong,{children:"IDEA\u8bed\u8a00\u76f8\u5173\u8bbe\u7f6e"})}),"\u6709\u4ecb\u7ecd\uff0c\u6b64\u5904\u4e0d\u518d\u8d58\u8ff0\u3001"]}),"\n",(0,i.jsx)(e.h4,{id:"\u8bbe\u7f6e\u4ee3\u7406",children:"\u8bbe\u7f6e\u4ee3\u7406"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u5931\u8d25"}),"\uff0c\u5341\u6709\u516b\u4e5d\u662f",(0,i.jsx)(e.strong,{children:"\u7f51\u7edc\u95ee\u9898"}),'(\u6bd4\u5982\u201cCan\'t find id plugin "abc" \u201d)\u3002\u8fd9\u4e2a\u95ee\u9898\u5e76\u4e0d\u597d\u89e3\u51b3\uff0c\u5982\u679c\u4f60\u6709\u53ef\u7528\u7684\u4ee3\u7406\uff0c\u8bf7\u6309\u8fd9\u4e24\u6b65\u8bbe\u7f6e\u4ee3\u7406\uff1a']}),"\n",(0,i.jsxs)(e.p,{children:["\u6309\u4e0b",(0,i.jsx)(e.strong,{children:"Ctrl+Alt+S"}),"\u547c\u51fa\u8bbe\u7f6e\u9762\u677f\uff0c\u5728",(0,i.jsx)(e.code,{children:"\u5916\u89c2\u4e0e\u884c\u4e3a -> \u7cfb\u7edf\u8bbe\u7f6e -> HTTP\u4ee3\u7406"}),"\u4e2d\uff0c\u4fee\u6539\u4ee3\u7406\u9009\u9879\u4e3a\u201c",(0,i.jsx)(e.strong,{children:"\u624b\u52a8\u914d\u7f6e"}),"\u201d\uff0c\u5e76\u586b\u5165\u4f60\u4ee3\u7406\u7684IP (\u5982192.168.1.3) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u4e3b\u673a\u540d"}),"\u201d\uff0c\u7aef\u53e3 (\u598211451) \u5230\u201c",(0,i.jsx)(e.strong,{children:"\u7aef\u53e3\u53f7"}),"\u201d\uff0c\u5e76\u70b9\u51fb\u201c",(0,i.jsx)(e.strong,{children:"\u786e\u5b9a"}),"\u201d\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6253\u5f00",(0,i.jsx)(e.code,{children:"gradle.properties"}),"\uff0c\u5728\u7b2c\u4e00\u884c\u524d\u8f93\u5165\u8fd9\u6bb5\u6587\u5b57\u6765\u8bbe\u5b9aGradle\u4ee3\u7406\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-properties",children:"[root@localhost=.gradle]\r\nsystemProp.http.proxyHost=\uff08\u4f60\u7684\u4ee3\u7406IP\uff09\r\nsystemProp.http.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\r\nsystemProp.https.proxyHost= \uff08\u4f60\u7684\u4ee3\u7406IP\uff09\r\nsystemProp.https.proxyPort= \uff08\u4f60\u7684\u4ee3\u7406\u7aef\u53e3\uff09\r\n# \u5982\u679c\u4f60\u7684\u4ee3\u7406http\u548chttps\u662f\u5408\u5e76\u7684\uff0c\u4e24\u4e2aip\u548c\u4e24\u4e2a\u7aef\u53e3\u662f\u4e00\u6837\u7684\u3002\n"})}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u6837\uff0c\u4f60\u5c31\u7b97\u5b8c\u6210\u4e86\u4ee3\u7406\u7684\u8bbe\u7f6e\u3002\u5982\u679c\u4ee3\u7406\u548c\u76ee\u6807\u4e00\u5207\u6b63\u5e38\uff0c\u5927\u6982\u5c31\u4e0d\u5b58\u5728\u7f51\u7edc\u95ee\u9898\u4e86\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u5728\u4e0b\u8f7d\u6216\u4e0a\u4f20\u9879\u76ee\u7684\u65f6\u5019\u88abGit\u63d0\u793aConnection Reset\u7b49\u6742\u75c7\uff0c\u591a\u534a\u4e5f\u662f\u7f51\u7edc\u95ee\u9898\uff0c\u4f60\u53ef\u4ee5\u8c03\u51faGit Bash\u8bbe\u7f6e\u4e00\u4e0bhttp\u548chttps\u7684Proxy\u3002\u76f8\u5173\u5185\u5bb9\u5efa\u8bae\u81ea\u884c\u641c\u7d22"}),"\n"]}),"\n",(0,i.jsx)(e.h4,{id:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519",children:"\u4e00\u4e2a\u4f60\u53ef\u4ee5\u5ffd\u7565\u6389\u7684\u62a5\u9519"}),"\n",(0,i.jsx)(e.p,{children:"\u7b2c\u4e00\u6b21\u6784\u5efa\u8fdb\u884c\u5230\u540e\u534a\u6bb5\u65f6\uff0c\u53ef\u80fd\u4f1a\u7a81\u7136\u5b9a\u4f4d\u5230\u67d0\u4e2a\u4ee3\u7801\u6bb5\uff0c\u5e76\u5728\u6784\u5efa\u63d0\u793a\u91cc\u8868\u793a\u67d0\u4e9b\u6587\u4ef6\u7684\u67d0\u6bb5\u4ee3\u7801\u6709\u95ee\u9898\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9",(0,i.jsx)(e.strong,{children:"\u5e76\u4e0d\u91cd\u8981"}),"\uff0c\u56e0\u4e3a\u4f60\u8fd8\u6ca1\u6709\u5f00\u59cb\u4fee\u6539\u6837\u672c\u6a21\u7ec4\u7684\u57fa\u7840\u6570\u636e\uff0c\u6240\u4ee5\u8fd9\u53ea\u662f\u6784\u5efa\u5728\u53d1\u795e\u7ecf(\xd7)\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ea\u8981\u5b83\u6ca1\u6709\u5bfc\u81f4\u4f60\u7684\u6784\u5efa\u51fa\u73b0",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\u7684\u63d0\u793a\u5e76\u7ec8\u6b62\uff0c\u8bf7\u76f4\u63a5\u65e0\u89c6\u5b83\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb",children:"\u5982\u4f55\u91cd\u65b0\u5f00\u59cb"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u4f60\u7684\u6784\u5efa\u4e0d\u5e78\u7684\u906d\u9047\u4e86",(0,i.jsx)(e.code,{children:"BUILD FAILED"}),"\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"build\u680f\u76ee"}),"\u4e2d\u7684",(0,i.jsx)(e.strong,{children:"\u5237\u65b0\u6309\u94ae"}),"(\u548c\u6d4f\u89c8\u5668\u7684\u5237\u65b0\u6309\u94ae\u5f88\u50cf)\u91cd\u65b0\u6784\u5efa\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u5982\u679c\u4f60\u627e\u4e0d\u5230\u90a3\u4e2a\u6309\u94ae\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u5173\u95ed\u9879\u76ee\u518d\u6253\u5f00\uff0cIDEA\u4f1a\u518d\u4e00\u6b21\u5c1d\u8bd5\u6784\u5efa\u3002"}),"\n",(0,i.jsx)(e.h4,{id:"\u9047\u5230\u56f0\u96be",children:"\u9047\u5230\u56f0\u96be"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u8fd8\u6709\u5176\u5b83\u95ee\u9898\uff0c\u53ef\u4ee5\u6765\u6211\u7ba1\u7406\u7684Ti works\u5bf9\u5916\u5f00\u653eQQ\u7fa4\uff1a",(0,i.jsx)(e.strong,{children:"953398884"})]}),"\n",(0,i.jsx)(e.p,{children:"\u6211\u5e73\u65f6\u6bd4\u8f83\u7e41\u5fd9\uff0c\u5f88\u5c11\u770b\u6d88\u606f\uff0c\u8bf7\u89c1\u8c05\u3002"}),"\n",(0,i.jsx)(e.h3,{id:"\u6d4b\u8bd5\u7a0b\u5e8f",children:"\u6d4b\u8bd5\u7a0b\u5e8f"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u679c\u6ca1\u6709\u4ec0\u4e48\u4e25\u91cd\u95ee\u9898\uff0c\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f1a\u5728\u7ed3\u5c3e\u663e\u793a\u4e00\u4e2a\u8d4f\u5fc3\u60a6\u76ee\u7684",(0,i.jsx)(e.code,{children:"BUILD SUCCESS"}),"\u5b57\u6837\u3002\u5982\u679c\u4f60\u7684",(0,i.jsx)(e.strong,{children:"\u521d\u6b21"}),"\u6784\u5efa\u901f\u5ea6\u5feb\u4e8e10\u5206\u949f\uff0c\u90a3\u4f60\u7684\u7f51\u7edc\u73af\u5883\u771f\u7684\u5f88\u4e0d\u9519((("]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e3a\u4e86",(0,i.jsx)(e.strong,{children:"\u68c0\u67e5"}),"\u4e00\u5207\u5982\u6211\u4eec\u6240\u9884\u671f\u7684\u90a3\u6837\u8fdb\u884c\uff0c\u4f60\u9700\u8981",(0,i.jsx)(e.strong,{children:"\u542f\u52a8\u4e00\u6b21"}),"\u90e8\u7f72\u7684MC\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f60\u7684\u8fd0\u884c\u680f\u4f1a\u51fa\u73b0\u8fd9\u6837\u56db\u4e2a\u8fd0\u884c\u9879\u76ee\uff1a",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c",(0,i.jsx)(e.code,{children:"Data"}),"\uff0c",(0,i.jsx)(e.code,{children:"Server"}),"\u548c",(0,i.jsx)(e.code,{children:"GameTestServer"}),"\uff0c\u5982\u56fe\u53f3\u4e0a\u89d2\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"\u5982\u679c\u6ca1\u6709\u51fa\u73b0\u5bf9\u5e94\u542f\u52a8\u6761\u76ee\uff0c\u8bf7\u5c1d\u8bd5\u4e00\u4e0b\u5173\u95edIDEA\u518d\u91cd\u65b0\u8fd0\u884c\u3002"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u8fd0\u884c\u680f\u5728\u8fd9\u91cc",src:s(7903).A+"",width:"1920",height:"1040"})}),"\n",(0,i.jsxs)(e.p,{children:["\u9009\u62e9",(0,i.jsx)(e.code,{children:"Client"}),"\uff0c\u7136\u540e\u70b9\u51fb",(0,i.jsx)(e.strong,{children:"\u8fd0\u884c"}),"\u3002\u4e00\u6bb5\u65f6\u95f4\u540e\uff0c\u968f\u7740log\u51fa\u6765\u7684\u5c31\u662fMinecraft\u7684\u754c\u9762\u4e86\uff1a"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u793a\u4f8b\u56fe\u7247-\u5f39\u51fa\u6e38\u620f\u754c\u9762",src:s(1401).A+"",width:"1920",height:"1042"})}),"\n",(0,i.jsx)(e.p,{children:"\u521b\u5efa\u4e00\u4e2a\u4e16\u754c\u8bd5\u8bd5\uff0c\u6ca1\u4ec0\u4e48\u95ee\u9898\u7684\u8bdd\uff0c\u5c31\u53ef\u4ee5\u9000\u51fa\u4e86\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u63d0\u793a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u53ef\u8fd0\u884c\u7684\u9879\u76ee\u662f\u7531",(0,i.jsx)(e.strong,{children:"\u914d\u7f6e\u6587\u4ef6"}),"\u5b8c\u6210\u7684\uff0c\u5b83\u5b58\u5728\u4e8e\u4f60\u7684\u9879\u76ee\u4e0b\u7684",(0,i.jsx)(e.code,{children:".idea/workspace.xml"}),"\u4e2d\uff0c\u662f\u7531\u6784\u5efa\u81ea\u884c\u751f\u6210\u7684\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u81f3\u6b64\uff0c\u6211\u4eec\u5c31\u7b97",(0,i.jsx)(e.strong,{children:"\u6784\u5efa\u6210\u529f"}),"\u4e86\uff01\u5e86\u795d\u4e00\u4e0b\u53ed~"]}),"\n",(0,i.jsx)(e.h2,{id:"\u7ae0\u672b\u5c0f\u8bb0",children:"\u7ae0\u672b\u5c0f\u8bb0"}),"\n",(0,i.jsx)(e.p,{children:"\u662f\u4e0d\u662f\u6709\u4e9b\u7d2f\u5462\uff1f\u6211\u5199\u8fd9\u7ae0\u82b1\u4e86\u4e0d\u5c11\u65f6\u95f4\u5462\u3002\u6211\u8ba4\u4e3a\u5199\u6a21\u7ec4\u8fd9\u4ef6\u4e8b\uff0c\u6b32\u901f\u5219\u4e0d\u8fbe\u3002\u7ec6\u7ec6\u7422\u78e8\uff0c\u6216\u8bb8\u624d\u80fd\u6df1\u5ea6\u7406\u89e3\u5427\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5173\u4e8e\u6211\u7684\u6559\u7a0b\u201c\u7ec6\u81f4\u8fc7\u5ea6\u201d\u7684\u95ee\u9898\uff0c\u6211\u4f1a\u8fdb\u884c\u53cd\u601d\u7684\u3002\u4e0d\u8fc7\u6211\u8ba4\u4e3a\uff0c\u8bb2\u7684\u7ec6\u81f4\u4e00\u70b9\uff0c\u5174\u8bb8\u66f4\u80fd\u5e2e\u5230\u65b0\u624b\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u63d0\u9192\u4f60\u4e00\u4e0b\uff0c",(0,i.jsx)(e.strong,{children:"\u8ba9AI\u4ee3\u5199\u4ee3\u7801\u4e0d\u603b\u662f\u53ef\u53d6\u7684"}),"\uff0c\u5bf9\u4e8e\u8fd9\u79cd\u504f\u5c0f\u4f17\u7684\u9886\u57df\uff0c\u5c31\u8fdeGPT4\u90fd\u4f1a\u4e0d\u65f6\u5730\u51fa\u9519\u3002\u6240\u4ee5\uff0c\u5c3d\u5df1\u6240\u80fd\uff0c\u52aa\u529b\u63a2\u7d22\uff01"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5bf9\u4e86\uff0c\u6700\u8fd1\u5728B\u7ad9\u4e0a\u770b\u5230\u4e00\u9996\u597d\u542c\u7684\u6b4c(\u542bBGA)\uff1a\u6765\u81ea",(0,i.jsx)(e.code,{children:"Empty old City"}),"\u7684",(0,i.jsx)(e.code,{children:"Astronomy/\u5929\u6587\u5b66"}),"\uff0c\u4e16\u754c\u89c2\u8bbe\u8ba1\u4e5f\u5f88\u6709\u610f\u601d\uff0c\u5728\u6b64\u5206\u4eab\u7ed9\u4f60\uff01"]}),"\n",(0,i.jsx)("div",{style:{position:"relative",width:"100%",paddingBottom:"56.25%",height:0,overflow:"hidden"},children:(0,i.jsx)("iframe",{src:"//player.bilibili.com/player.html?isOutside=true&aid=113355796845449&bvid=BV1ZgyoYBEPw&cid=26425295593&p=1&autoplay=0&high_quality=1",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"none"},allowFullScreen:!0,sandbox:"allow-top-navigation allow-same-origin allow-forms allow-scripts"})}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsxs)(e.p,{children:["MakerTechno\u7f16\u8f91\u4e8e2024\u5e7411\u67089\u65e5\uff0c\u672c\u6587\u5206\u4eab\u81f3",(0,i.jsx)(e.code,{children:"\u51c9\u62cc\u5c0f\u9e3d"}),"\u7684\u4e2a\u4eba\u535a\u5ba2\u90e8\u7f72\uff0c\u5fae\u8c03\u540e\u5728B\u7ad9\u90e8\u7f72"]}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6539\u4e8e2025\u5e746\u670822\u65e5\uff0c\u589e\u6dfb\u4e86\u201c\u6dfb\u52a0\u63d2\u4ef6\u201d\u680f\u76ee\uff0c\u4fee\u6539\u4e86\u90e8\u5206\u5176\u5b83\u5185\u5bb9"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u7f16\u8f91\u4e8e2025\u5e748\u67083\u65e5\uff0c\u9488\u5bf9B\u7ad9\u8bc4\u8bba\u533a\u63d0\u95ee\u505a\u51fa\u4e86\u4fee\u6b63"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Copyright \xa9 2025 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(o,{...n})}):o(n)}},6135:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8bbe\u7f6e\u91cc\u7684Gradle\u680f\u76ee-c3908ac6ebe5fa7ab0639b55d5b51f47.png"},6769:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728Path\u6dfb\u52a0Java-3893ca03d7c19a8ee97c37ec9d598b0a.png"},7111:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/IDEA\u9009\u62e9\u9879\u76ee\u6587\u4ef6\u5939-342ca311c3eacf49f22a0154b8e00c70.png"},7234:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},7473:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u5728JetBrains\u5b98\u7f51\u4e0b\u8f7d\u793e\u533a\u7248IDEA-0ef5114f7d73cbab66386a1140d32d2f.png"},7903:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fd0\u884c\u680f\u5728\u8fd9\u91cc-15308dbaec13e7025f3f0c62fb1c537c.png"},8988:(n,e,s)=>{s.d(e,{A:()=>r});const r="data:image/png;base64,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"},9334:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u8fdb\u5165\u540e\u7684\u6837\u5b50-2e191e13292dd320d90b736b1c338708.png"},9667:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/Java21\u8def\u5f84-15acc474f38d6791ee5cb973d5f70950.png"}}]);
\ No newline at end of file
diff --git a/docs/assets/js/a58a13eb.622a8a9a.js b/docs/assets/js/a58a13eb.622a8a9a.js
deleted file mode 100644
index c530256..0000000
--- a/docs/assets/js/a58a13eb.622a8a9a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[1901],{2203:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>h,default:()=>j,frontMatter:()=>t,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"intronf","title":"NeoForge1.21\u5f00\u53d1\u6559\u7a0b","description":"\u6b22\u8fce\u6765\u5230MakerTechno\u76841.21NeoForge\u6a21\u7ec4\u5f00\u53d1\u6559\u7a0b\uff01\u5982\u679c\u4f60\u5728\u5f00\u53d11.21\u81f31.21.x\u7248\u672c\u7684NeoForge\u6a21\u7ec4\uff0c\u672c\u6559\u7a0b\u975e\u5e38\u9002\u5408\u53c2\u8003\u3002","source":"@site/tutorial/index.md","sourceDirName":".","slug":"/nf1.21","permalink":"/docs/tutorial/nf1.21","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"intronf","slug":"/nf1.21","index":2},"sidebar":"tutorialSidebar","previous":{"title":"\u6709\u5173AI","permalink":"/docs/tutorial/nf1.21/additions/AboutAI"}}');var d=s(4848),i=s(8453);const t={id:"intronf",slug:"/nf1.21",index:2},h="NeoForge1.21\u5f00\u53d1\u6559\u7a0b",l={},c=[{value:"\u7279\u6027",id:"\u7279\u6027",level:2},{value:"\u7ae0\u8282\u5217\u8868",id:"\u7ae0\u8282\u5217\u8868",level:3},{value:"\u6709\u5176\u5b83\u7248\u672c\u5417\uff1f",id:"\u6709\u5176\u5b83\u7248\u672c\u5417",level:3},{value:"\u6211\u9047\u5230\u4e86\u95ee\u9898\uff01",id:"\u6211\u9047\u5230\u4e86\u95ee\u9898",level:3},{value:"\u4f5c\u8005\uff0c\u4f60\u8bb2\u5f97\u4e0d\u6b63\u786e\uff01",id:"\u4f5c\u8005\u4f60\u8bb2\u5f97\u4e0d\u6b63\u786e",level:3},{value:"\u90a3\u6211\u6ca1\u4ec0\u4e48\u4e8b\u4e5f\u53ef\u4ee5\u8fdb\u5f00\u653e\u7fa4\u804a\u5417\uff1f",id:"\u90a3\u6211\u6ca1\u4ec0\u4e48\u4e8b\u4e5f\u53ef\u4ee5\u8fdb\u5f00\u653e\u7fa4\u804a\u5417",level:3},{value:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u6587\u5417\uff1f",id:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u6587\u5417",level:3},{value:"\u4f5c\u8005\u8bf7\u95ee\u4f60\u662f\u5728\u6478\u9c7c\u5417\uff1f",id:"\u4f5c\u8005\u8bf7\u95ee\u4f60\u662f\u5728\u6478\u9c7c\u5417",level:3}];function x(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"neoforge121\u5f00\u53d1\u6559\u7a0b",children:"NeoForge1.21\u5f00\u53d1\u6559\u7a0b"})}),"\n",(0,d.jsxs)(n.p,{children:["\u6b22\u8fce\u6765\u5230MakerTechno\u7684",(0,d.jsx)(n.strong,{children:"1.21NeoForge\u6a21\u7ec4\u5f00\u53d1\u6559\u7a0b"}),"\uff01\u5982\u679c\u4f60\u5728\u5f00\u53d1",(0,d.jsx)(n.code,{children:"1.21"}),"\u81f3",(0,d.jsx)(n.code,{children:"1.21.x"}),"\u7248\u672c\u7684NeoForge\u6a21\u7ec4\uff0c\u672c\u6559\u7a0b\u975e\u5e38\u9002\u5408\u53c2\u8003\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u7279\u6027",children:"\u7279\u6027"}),"\n",(0,d.jsx)(n.p,{children:"\u672c\u6559\u7a0b\u7684\u8bb2\u89e3\u76f8\u8f83\u4e8e\u5176\u5b83\u6559\u7a0b\u867d\u7565\u663e\u8bdd\u75e8\uff0c\u4f46\u8fd9\u79cd\u65b9\u5f0f\u65e8\u5728\u5f15\u5bfc\u65b0\u624b\u5728\u63a2\u7d22\u5982\u4f55\u5f00\u53d1\u6a21\u7ec4\u7684\u8fc7\u7a0b\u4e2d\u5c3d\u91cf\u5c11\u8d70\u5f2f\u8def\u3002\u5f53\u7136\uff0c\u6559\u7a0b\u4e5f\u4f1a\u5efa\u8bae\u4f60\u8fdb\u884c\u5fc5\u8981\u7684\u63a2\u7d22\uff0c\u4ee5\u4fbf\u65e0\u7f1d\u63a5\u7eed\u5230\u81ea\u884c\u8fdb\u884c\u72ec\u7acb\u6a21\u7ec4\u7684\u5f00\u53d1\u3002"}),"\n",(0,d.jsx)(n.h3,{id:"\u7ae0\u8282\u5217\u8868",children:"\u7ae0\u8282\u5217\u8868"}),"\n",(0,d.jsx)(n.p,{children:"\u8fd9\u91cc\u5217\u51fa\u4e86\u4e00\u4efd\u7ae0\u8282\u8868\u548c\u5185\u5bb9\u8bf4\u660e\u3002"}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"\u7ae0\u8282\u9898\u76ee"}),(0,d.jsx)(n.th,{children:"\u6d89\u53ca\u5185\u5bb9"}),(0,d.jsx)(n.th,{children:"\u662f\u5426\u5b8c\u6210"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"./nf1.21/ep1",children:"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08"})}),(0,d.jsx)(n.td,{children:"\u7535\u8111\u6027\u80fd\u3001\u5176\u5b83\u535a\u5ba2\u94fe\u63a5"}),(0,d.jsx)(n.td,{children:"\u2714\ufe0f"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"./nf1.21/ep2",children:"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa"})}),(0,d.jsx)(n.td,{children:"\u8f6f\u4ef6\u4e0b\u8f7d\u3001\u914d\u7f6e\u73af\u5883\u3001\u8bd5\u542f\u52a8"}),(0,d.jsx)(n.td,{children:"\u2714\ufe0f"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"./nf1.21/ep3",children:"\u7b2c\u4e09\u7ae0 \u6a21\u7ec4\u7ed3\u6784"})}),(0,d.jsx)(n.td,{children:"\u57fa\u7840\u6a21\u7ec4\u77e5\u8bc6\u3001\u6a21\u7ec4\u4ee3\u7801\u521d\u6b65"}),(0,d.jsx)(n.td,{children:"\ud83d\udd34"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.a,{href:"./nf1.21/ep4",children:"\u7b2c\u56db\u7ae0 \u7b2c\u4e00\u4e2a\u7269\u54c1"})}),(0,d.jsx)(n.td,{children:"\u7269\u54c1\u7c7b\u3001\u6ce8\u518c\u3001\u4e8b\u4ef6"}),(0,d.jsx)(n.td,{children:"\ud83d\udd34"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:"Coming soon..."}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{})]})]})]}),"\n",(0,d.jsx)(n.h3,{id:"\u6709\u5176\u5b83\u7248\u672c\u5417",children:"\u6709\u5176\u5b83\u7248\u672c\u5417\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u6682\u65f6\u662f\u6ca1\u6709\u7684\u3002\u4f60\u53ef\u4ee5v\u621150(KFC\u7684\u6897\uff0c\u5728\u5f00\u73a9\u7b11\u54e6)\u8ba9\u6211\u53bb\u5199\u4e00\u7bc7\u6765\uff0c\u4f46\u662f\u5c31\u76ee\u524d\u7684\u7e41\u5fd9\u7a0b\u5ea6\u6765\u8bf4\u81f3\u5c111\u5e74\u5185\u4e0d\u4f1a\u7f16\u5199\u66f4\u4f4e\u7248\u672c\u7684\u6559\u7a0b\u3002"}),"\n",(0,d.jsx)(n.h3,{id:"\u6211\u9047\u5230\u4e86\u95ee\u9898",children:"\u6211\u9047\u5230\u4e86\u95ee\u9898\uff01"}),"\n",(0,d.jsxs)(n.p,{children:["\u55ef\uff1f\u662f\u6559\u7a0b\u6ca1\u6709\u8bb2\u5230\u7684\u5730\u65b9\u5417\uff1f\u8fd8\u662f\u4f60\u6ca1\u6309\u6559\u7a0b\u7684\u65b9\u6cd5\u6765\uff1f\u5148\u627e\u627e\u539f\u56e0\u3002\u5982\u679c\u89e3\u51b3\u4e0d\u4e86\uff0c\u8bf7\u52a0QQ\u7fa4 ",(0,d.jsx)(n.strong,{children:"953398884"})," \u548c\u7fa4\u53cb\u4eec\u4ea4\u6d41\u4e00\u4e0b\uff01"]}),"\n",(0,d.jsx)(n.h3,{id:"\u4f5c\u8005\u4f60\u8bb2\u5f97\u4e0d\u6b63\u786e",children:"\u4f5c\u8005\uff0c\u4f60\u8bb2\u5f97\u4e0d\u6b63\u786e\uff01"}),"\n",(0,d.jsxs)(n.p,{children:["\u54e6\u54e6\uff01\u6211\u5728\u53d1\u5e03\u524d\u4f1a\u8fdb\u884c\u4e00\u6b21\u6838\u7a3f\uff0c\u4f46\u662f\u6211\u4e5f\u4e0d\u5f88\u786e\u5b9a\u662f\u4e0d\u662f\u54ea\u91cc\u6709\u4ec0\u4e48\u6ca1\u6ce8\u610f\u5230\u7684\u5730\u65b9\u3002\u5982\u679c\u4f60\u80fd\u5e2e\u6211\u4fee\u6b63\u9519\u8bef\uff0c\u90a3\u771f\u662f\u592a\u611f\u8c22\u4e86\uff01\u4f60\u53ef\u4ee5\u76f4\u63a5\u52a0QQ\u7fa4 ",(0,d.jsx)(n.strong,{children:"953398884"})," \u548c\u5927\u5bb6\u4ea4\u6d41\uff01"]}),"\n",(0,d.jsx)(n.h3,{id:"\u90a3\u6211\u6ca1\u4ec0\u4e48\u4e8b\u4e5f\u53ef\u4ee5\u8fdb\u5f00\u653e\u7fa4\u804a\u5417",children:"\u90a3\u6211\u6ca1\u4ec0\u4e48\u4e8b\u4e5f\u53ef\u4ee5\u8fdb\u5f00\u653e\u7fa4\u804a\u5417\uff1f"}),"\n",(0,d.jsxs)(n.p,{children:["\u53ef\u4ee5\uff0c\u5f53\u7136\u53ef\u4ee5\uff01\u4e0d\u8fc7\u4f60\u9700\u8981\u901a\u8fc7\u7fa4\u804a\u7684\u7533\u8bf7\u5e76\u51c6\u786e\u586b\u5199\u6765\u6e90\u6211\u624d\u80fd\u653e\u4f60\u8fdb\u6765\u3002\u6700\u597d\u7684\u60c5\u51b5\u4e0b\u5efa\u8bae\u8bf4\u660e\u4e00\u4e0b\u662f\u95f2\u804a\u8fd8\u662f\u9047\u5230\u4e86\u95ee\u9898\uff0c\u8fd9\u6837\u53ef\u4ee5\u52a0\u5feb\u5165\u7fa4\u901f\u5ea6\u3002\u5f00\u653e\u7fa4\u5185",(0,d.jsx)(n.strong,{children:"\u7981\u6b62"}),"\u5ba3\u7fa4\u3001\u5e7f\u544a\u3001\u4eba\u8eab\u653b\u51fb\u7b49\u884c\u4e3a\uff0c\u4e00\u7ecf\u53d1\u73b0\u7ed9\u4e88",(0,d.jsx)(n.strong,{children:"\u8b66\u544a/\u8e22\u51fa\u7fa4\u804a(\u6c38\u4e45)*"}),"\u5904\u7f5a\u3002"]}),"\n",(0,d.jsx)(n.h3,{id:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u6587\u5417",children:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u6587\u5417\uff1f"}),"\n",(0,d.jsxs)(n.p,{children:["\u8bf7",(0,d.jsx)(n.strong,{children:"\u5148\u83b7\u5f97\u6211\u7684\u8bb8\u53ef"}),"\u3002\u53e6\u5916\uff0c\u4f60\u9700\u8981",(0,d.jsx)(n.strong,{children:"\u5b8c\u5168\u9075\u5b88"}),"\u672c\u6559\u7a0b\u6240\u4f7f\u7528\u7684\u534f\u8bae\uff1a",(0,d.jsx)(n.a,{href:"https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans",children:"CC_BY-NC-SA\u534f\u8bae"})]}),"\n",(0,d.jsx)(n.h3,{id:"\u4f5c\u8005\u8bf7\u95ee\u4f60\u662f\u5728\u6478\u9c7c\u5417",children:"\u4f5c\u8005\u8bf7\u95ee\u4f60\u662f\u5728\u6478\u9c7c\u5417\uff1f"}),"\n",(0,d.jsx)(n.p,{children:"\u662f......\u4e0d\u662f\u4e3a\u4ec0\u4e48\u6211\u8981\u56de\u7b54\u8fd9\u4e2a\u95ee\u9898\uff1f(\u6ed1\u7a3d)"}),"\n",(0,d.jsx)(n.hr,{}),"\n",(0,d.jsx)(n.p,{children:"MakerTechno\u7f16\u5199\u4e8e2025\u5e746\u670828\u65e5"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsxs)(n.strong,{children:["\u672c\u6587\u6267\u884cCC_BY-NC-SA\u534f\u8bae\uff0c\u534f\u8bae\u5185\u5bb9\u8be6\u89c1",(0,d.jsx)(n.a,{href:"https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans",children:"\u8fd9\u91cc"})]})})]})}function j(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(x,{...e})}):x(e)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/a58a13eb.8d4545a5.js b/docs/assets/js/a58a13eb.8d4545a5.js
deleted file mode 100644
index f831111..0000000
--- a/docs/assets/js/a58a13eb.8d4545a5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[1901],{2203:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>h,default:()=>a,frontMatter:()=>i,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"intro","title":"\u6982\u89c8","description":"\u6b22\u8fce\u6765\u5230MakerTechno\u7684\u6559\u7a0b\u7f51\u7ad9\uff01\u8fd9\u91cc\u5c06\u4f1a\u6709\u5f88\u591a\u7684\u6559\u7a0b\uff0c\u4e5f\u6b22\u8fce\u5927\u5bb6\u8054\u7cfb\u6211\u6258\u7ba1\u81ea\u5df1\u7684\u6559\u7a0b\uff01","source":"@site/tutorial/index.md","sourceDirName":".","slug":"/","permalink":"/docs/tutorial/","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":0,"frontMatter":{"id":"intro","slug":"/","sidebar_position":0},"sidebar":"tutorialSidebar","next":{"title":"NeoForge1.21\u5f00\u53d1\u6559\u7a0b","permalink":"/docs/tutorial/nf1.21"}}');var n=r(4848),d=r(8453);const i={id:"intro",slug:"/",sidebar_position:0},h="\u6982\u89c8",l={},c=[{value:"\u6559\u7a0b\u76ee\u5f55",id:"\u6559\u7a0b\u76ee\u5f55",level:2},{value:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u7f51\u7ad9\u7684\u6587\u7ae0\u5417\uff1f",id:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u7f51\u7ad9\u7684\u6587\u7ae0\u5417",level:3}];function o(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"\u6982\u89c8",children:"\u6982\u89c8"})}),"\n",(0,n.jsxs)(s.p,{children:["\u6b22\u8fce\u6765\u5230MakerTechno\u7684",(0,n.jsx)(s.strong,{children:"\u6559\u7a0b\u7f51\u7ad9"}),"\uff01\u8fd9\u91cc\u5c06\u4f1a\u6709\u5f88\u591a\u7684\u6559\u7a0b\uff0c\u4e5f\u6b22\u8fce\u5927\u5bb6\u8054\u7cfb\u6211\u6258\u7ba1\u81ea\u5df1\u7684\u6559\u7a0b\uff01"]}),"\n",(0,n.jsx)(s.p,{children:"\u672c\u533a\u57df\u7531Docusaurus\u6784\u5efa\uff0c\u611f\u8c22\u8fd9\u6837\u4e00\u6b3e\u4f18\u79c0\u7684\u6587\u6863\u6846\u67b6\uff01"}),"\n",(0,n.jsx)(s.h2,{id:"\u6559\u7a0b\u76ee\u5f55",children:"\u6559\u7a0b\u76ee\u5f55"}),"\n",(0,n.jsx)(s.p,{children:"\u8fd9\u91cc\u5217\u51fa\u4e86\u4e00\u4efd\u6559\u7a0b\u76ee\u5f55\uff0c\u5305\u542b\u5df2\u7ecf\u63a8\u51fa\u7684\u6559\u7a0b\u548c\u8ba1\u5212\u63a8\u51fa\u7684\u6559\u7a0b\u3002"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"\u7ae0\u8282\u9898\u76ee"}),(0,n.jsx)(s.th,{children:"\u6d89\u53ca\u5185\u5bb9"}),(0,n.jsx)(s.th,{children:"\u662f\u5426\u5b8c\u6210"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.a,{href:"./nf1.21",children:"NeoForge1.21\u6a21\u7ec4\u5f00\u53d1\u6559\u7a0b"})}),(0,n.jsx)(s.td,{children:"Minecraft, Java, IDEA, Mod, Develop"}),(0,n.jsx)(s.td,{children:"\ud83d\udd53"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Coming soon..."}),(0,n.jsx)(s.td,{}),(0,n.jsx)(s.td,{})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u7f51\u7ad9\u7684\u6587\u7ae0\u5417",children:"\u6211\u53ef\u4ee5\u8f6c\u8f7d\u672c\u7f51\u7ad9\u7684\u6587\u7ae0\u5417\uff1f"}),"\n",(0,n.jsxs)(s.p,{children:["\u975eCC\u7c7b\u534f\u8bae\u8bf7",(0,n.jsx)(s.strong,{children:"\u5148\u83b7\u5f97\u6211\u7684\u8bb8\u53ef"}),"\u3002\u6bcf\u7bc7\u6587\u7ae0\u7684\u6587\u672b\u6807\u6ce8\u4e86\u672c\u6587\u7684\u534f\u8bae\u7c7b\u578b"]}),"\n",(0,n.jsx)(s.p,{children:"\u539f\u8c05\u6211\u8fd9\u4e48\u4e25\u683c\u7684\u8bf4\u8f9e\uff0c\u56e0\u4e3a\u89c1\u5230\u7684\u4e8b\u60c5\u592a\u591a\u4e86\uff0c\u6211\u4e0d\u5f97\u4e0d\u5982\u6b64\u3002"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.p,{children:"MakerTechno\u7f16\u5199\u4e8e2025\u5e746\u670828\u65e5"}),"\n",(0,n.jsx)(s.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"Copyright \xa9 2025 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,n.jsx)(s.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"})]})}function a(e={}){const{wrapper:s}={...(0,d.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/b135ab6e.b9fbd251.js b/docs/assets/js/b135ab6e.b9fbd251.js
deleted file mode 100644
index 9228a1f..0000000
--- a/docs/assets/js/b135ab6e.b9fbd251.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5586],{1582:(n,e,s)=>{s.d(e,{A:()=>r});const r=s.p+"assets/images/\u96be\u7ef7-54bcc903ceb4222b1f264ec446be3218.gif"},3116:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>o,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>r,toc:()=>h});const r=JSON.parse('{"id":"NeoForge1.21Tutorial/\u7b2c\u4e00\u7ae0/nf1.21ep1","title":"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08","description":"\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a\u5bf9\u6807 Minecraft1.21\u5e76\u4f7f\u7528NeoForge\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002","source":"@site/tutorial/1-NeoForge1.21Tutorial/1-\u7b2c\u4e00\u7ae0/index.md","sourceDirName":"1-NeoForge1.21Tutorial/1-\u7b2c\u4e00\u7ae0","slug":"/nf1.21/ep1","permalink":"/docs/tutorial/nf1.21/ep1","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"nf1.21ep1","slug":"/nf1.21/ep1"},"sidebar":"tutorialSidebar","previous":{"title":"NeoForge1.21\u5f00\u53d1\u6559\u7a0b","permalink":"/docs/tutorial/nf1.21"},"next":{"title":"\u7b2c\u4e8c\u7ae0 \u73af\u5883\u6784\u5efa","permalink":"/docs/tutorial/nf1.21/ep2"}}');var i=s(4848),l=s(8453);const c={id:"nf1.21ep1",slug:"/nf1.21/ep1"},d="\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08",o={},h=[{value:"\u6211\u662f\u4ec0\u4e48\u65f6\u5019\u5f00\u59cb\u5199\u6a21\u7ec4\u7684\uff1f",id:"\u6211\u662f\u4ec0\u4e48\u65f6\u5019\u5f00\u59cb\u5199\u6a21\u7ec4\u7684",level:2},{value:"\u5f53\u521d\u4e3a\u4ec0\u4e48\u9009\u62e9\u5199\u6a21\u7ec4\uff1f",id:"\u5f53\u521d\u4e3a\u4ec0\u4e48\u9009\u62e9\u5199\u6a21\u7ec4",level:2},{value:"\u5199\u6a21\u7ec4\u90fd\u9700\u8981\u4ec0\u4e48\uff1f",id:"\u5199\u6a21\u7ec4\u90fd\u9700\u8981\u4ec0\u4e48",level:2},{value:"\u6211\u90fd\u770b\u8fc7\u54ea\u4e9b\u6a21\u7ec4\u6559\u7a0b\uff1f",id:"\u6211\u90fd\u770b\u8fc7\u54ea\u4e9b\u6a21\u7ec4\u6559\u7a0b",level:2},{value:"\u7ae0\u672b\u5c0f\u8bb0",id:"\u7ae0\u672b\u5c0f\u8bb0",level:2}];function t(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,l.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"\u7b2c\u4e00\u7ae0--\u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08",children:"\u7b2c\u4e00\u7ae0 \u6b63\u5f0f\u5f00\u59cb\u524d\u7684\u6742\u8c08"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u4e00\u4e2a\u6559\u4f60\u600e\u4e48\u5199\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u5bf9\u6807"})," ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),(0,i.jsx)(e.strong,{children:"\u5e76\u4f7f\u7528"}),(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684\u6a21\u7ec4\u7684\u6559\u7a0b\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,i.jsx)(e.strong,{children:"\u8b66\u544a"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ea\u9002\u7528\u4e8e"}),"\u4f7f\u7528",(0,i.jsx)(e.code,{children:"NeoForge"}),"\u6a21\u7ec4\u52a0\u8f7d\u5668\u7684 ",(0,i.jsx)(e.code,{children:"Minecraft1.21"}),"\u7248\u672c\uff0c\u5982\u679c\u4f60\u5728\u5199\u522b\u7684\u7248\u672c\u7684\u6a21\u7ec4\uff0c\u53c2\u8003\u672c\u6559\u7a0b",(0,i.jsx)(e.strong,{children:"\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f60\u7684\u4ee3\u7801\u51fa\u9519\u6216\u51fa\u73b0\u672a\u7ecf\u9a8c\u8bc1\u7684\u95ee\u9898"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u2139\ufe0f",(0,i.jsx)(e.strong,{children:"\u4f7f\u7528\u987b\u77e5"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u53ea\u8ba8\u8bba\u5982\u4f55\u7528Java\u5199\u6a21\u7ec4\uff0c",(0,i.jsx)(e.strong,{children:"\u4e0d\u4f1a\u8ba8\u8bba\u6709\u5173MCreator\u8fd9\u7c7b\u6a21\u7ec4\u5236\u4f5c\u5668\u7684\u4f7f\u7528"}),"\u3002\u5982\u679c\u4f60\u4e0d\u4f1aJava\uff0c\u8bf7\u5148\u5b66\u4e60Java\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u6211\u662f\u4ec0\u4e48\u65f6\u5019\u5f00\u59cb\u5199\u6a21\u7ec4\u7684",children:"\u6211\u662f\u4ec0\u4e48\u65f6\u5019\u5f00\u59cb\u5199\u6a21\u7ec4\u7684\uff1f"}),"\n",(0,i.jsx)(e.p,{children:"\u5927\u6982\u662f3\u5e74\u524d\uff0c\u6211\u521d\u4e8c\u7684\u65f6\u5019\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u90a3\u9635\u5b50\u5929\u5929\u4e0a\u7f51\u8bfe\uff0c\u63a5\u89e6\u7535\u8111\u7684\u65f6\u95f4\u4e5f\u591a\u4e86\uff0c\u5c31\u840c\u751f\u4e86\u5199\u6a21\u7ec4\u7684\u5ff5\u5934\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5c31\u7f16\u7a0b\u57fa\u7840\u800c\u8a00\uff0c\u521a\u5f00\u59cb\u5199\u6a21\u7ec4\u7684\u65f6\u5019\u6211\u7684\u57fa\u7840\u5e76\u4e0d\u7262\u56fa\u2014\u2014Java\u662f\u521d\u4e00\u81ea\u5b66\u7684\uff0c\u76f4\u5230\u5f00\u59cb\u5b66\u5199\u6a21\u7ec4\u65f6\u4e5f\u5c31\u5b66\u4e86\u4e0d\u5230\u4e00\u5e74\u7684\u529f\u592b\u3002\u800c\u8fd9\u4e4b\u540e\u6280\u672f\u7ecf\u9a8c\u7684\u79ef\u7d2f\uff0c\u6709\u5f88\u5927\u4e00\u90e8\u5206\u6765\u81ea\u4e8e\u5176\u4ed6\u5927\u4f6c\u7684\u6a21\u7ec4\u6559\u7a0b\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u4e5f\u6b63\u662f\u56e0\u4e3a\u5f00\u6e90\u793e\u533a\u7684\u4f18\u52bf\uff0c\u6211\u5f97\u4ee5\u5b8c\u6210\u6211\u7684\u7b2c\u4e00\u4efd\u6a21\u7ec4\u3002\u611f\u6fc0\u793e\u533a\uff0c\u4e5f\u611f\u8c22\u6240\u6709\u652f\u6301\u77e5\u8bc6\u5f00\u6e90\u7684\u4eba\u4eec\uff01"}),"\n",(0,i.jsx)(e.h2,{id:"\u5f53\u521d\u4e3a\u4ec0\u4e48\u9009\u62e9\u5199\u6a21\u7ec4",children:"\u5f53\u521d\u4e3a\u4ec0\u4e48\u9009\u62e9\u5199\u6a21\u7ec4\uff1f"}),"\n",(0,i.jsx)(e.p,{children:"\u6211\u53ef\u662f\u4e00\u4e2a\u5fe0\u5b9e\u7684MC\u73a9\u5bb6\uff01\u628a\u81ea\u5df1\u60f3\u5230\u7684\u4e1c\u897f\u52a0\u5230\u6e38\u620f\u91cc\u8fd9\u4ef6\u4e8b\u53ef\u592a\u9177\u4e86\uff01\u4e0d\u662f\u5417\uff1f"}),"\n",(0,i.jsxs)(e.p,{children:["\u5176\u5b9e\uff0c\u5bf9\u4e8e\u5f53\u65f6\u7684\u6211\u800c\u8a00\uff0c\u6211\u6839\u672c\u770b\u4e0d\u61c2\u4ee3\u7801\u4e2d\u4e00\u884c\u884c\u7684lambda\u8868\u8fbe\u5f0f~~(\u6bd5\u7adf\u4e66\u4e0a\u6ca1\u5199)~~\uff0c\u53ea\u80fd\u7167\u846b\u82a6\u753b\u74e2\u3002\u5176\u4f59\u5927\u91cf\u65f6\u95f4\u5219\u662f\u5728\u7ffb\u9605\u4ee3\u7801\u8bf4\u660e\u6587\u6863\uff0c\u641e\u6e05\u695a\u67d0\u79cd\u5199\u6cd5\u5230\u5e95\u8868\u8fbe\u4e86\u4ec0\u4e48\u3002\u5728\u8fd9\u79cd\u5947\u602a\u7684\u73af\u5883\u4e0b\uff0c\u5b55\u80b2\u51fa\u4e86\u4e00\u4e2a\u65e7\u65f6\u4ee3\u7684\u7801\u5b57\u72c2\u9b54(\u96fe)\u3002\u6211\u7684",(0,i.jsx)(e.code,{children:"\u5bb6\u5177\u8ba1\u5212FurniturePlan"}),"\u52a0\u5165\u4e86\u5f88\u591a\u65b9\u5757\u5bf9\u5427\uff1f\u73b0\u5728\u6211\u53ef\u4ee5\u5728\u8fd9\u4e2a\u5e93\u5185\u4ec5\u7528\u4e24\u5c0f\u65f6\u5c31\u65b0\u589e\u767e\u4f59\u79cd\u65b9\u5757\uff0c\u800c\u8fd9\u4e00\u5207\u7684\u57fa\u7840\uff0c\u5c31\u6765\u81ea\u6700\u521d\u7684\u90a3\u4efd53\u6750\u8d28\u7684\u6905\u5b50\u6ce8\u518c\u6e05\u5355\uff0c\u6211\u521d\u4e8c\u7684\u65f6\u5019\u4e00\u5b57\u4e00\u5b57\u7801\u51fa\u6765\u7684\u4e00\u7ec4\u4e07\u4f59\u5b57\u7684\u4ee3\u7801\u8868\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u9664\u6b64\u4e4b\u5916\uff0c\u521d\u4e8c\u90a3\u5e74\u751f\u65e5\uff0c\u6211\u7684\u597d\u670b\u53cb\u9001\u6211\u4e86\u4e00\u4efd\u6cf0\u62c9\u745e\u4e9a\u3002\u6e38\u73a9\u4e4b\u4f59\uff0c\u6211\u4eec\u4fbf\u6709\u4e86\u4e00\u4e2a\u60f3\u6cd5\uff1a\u5982\u679c\u628a\u6cf0\u62c9\u7269\u54c1\u642c\u5230MC\u91cc\uff0c\u5c06\u4f1a\u662f\u4e00\u4e2a\u5f88\u4e0d\u9519\u7684\u9009\u62e9\u5427\u3002\u4e8e\u662f\u5728\u67d0\u4e00\u5929\uff0c\u7531jing_qi\u3001withdrawn(shadow)\u5efa\u8bae\uff0c\u6211\u4f5c\u4e3a\u961f\u957f\u7684Ti works\u56e2\u961f\u4fbf\u6b63\u5f0f\u6210\u7acb\u4e86\u3002\u8fd9\u5927\u6982\u5c31\u662f\u6211\u5168\u90e8\u7684\u52a8\u529b\u6765\u6e90\u4e86\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u503c\u5f97\u4e00\u63d0\u7684\u662f\uff0c\u6211\u4eec\u7684\u7b2c\u4e00\u4e2a\u6a21\u7ec4\u4e5f\u786e\u5b9e\u5c31\u662f\u6cf0\u62c9\u6a21\u7ec4\uff0c\u53ea\u662f\u56e0\u4e3a\u6211\u5f53\u65f6\u62d9\u52a3\u7684\u6280\u672f\u5e76\u4e0d\u80fd\u80dc\u4efb\u8fd9\u6837\u4e00\u4e2a\u9ad8\u96be\u5ea6\u6a21\u7ec4\u7684\u7f16\u5199\u3002\u6700\u7ec8\uff0c\u6cf0\u62c9\u6a21\u7ec4\u4e8e2023\u5e745\u6708\u4efd\uff0c\u5f7b\u5e95\u7684\u505c\u66f4\u4e86(\u53ef\u60b2\u7684\u662f\u6211\u80fd\u627e\u56de\u7684\u7248\u672c\u53ea\u6709\u4e00\u4e2a\u9b54\u955c\u548c\u4e00\u70b9\u77ff\u7269\uff0c\u90a3\u4e2a\u5199\u4e86\u4e00\u5806\u7684\u7248\u672c\u5219\u56e0\u4e3a\u6ca1\u6709\u4e0a\u4f20\u800c\u5728\u67d0\u6b21IDEA\u66f4\u65b0\u4e2d\u88ab\u8986\u5199\u5220\u9664\u4e86)\u3002\u73b0\u5728\uff0c\u4f60\u4ecd\u80fd\u5728\u6211\u7684\u9879\u76ee\u91cc\u627e\u5230\u5df2\u7ecf\u88ab\u8d44\u6e90\u5316\u7684\u5e93\uff1a",(0,i.jsx)(e.a,{href:"https://github.com/MakerTechno/TerrariaMod/",children:"\u6cf0\u62c9\u745e\u4e9a\u9879\u76ee\u5e93"}),"\u3002\u800c\u6211\u672c\u4eba\u5728\u4e00\u5e74\u540e\u53c2\u4e0e\u4e86\u53ef\u80fd\u662f\u73b0\u5728\u6700\u4f18\u79c0\u7684MC\u6cf0\u62c9\u6a21\u7ec4\u2014\u2014\u6c47\u6d41\u6765\u4e16",(0,i.jsx)(e.sup,{children:(0,i.jsx)(e.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),"\u7684\u4e00\u70b9\u8f85\u52a9\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u7531\u6b64\u53ef\u89c1\uff0c\u5e76\u975e\u6240\u6709\u4e8b\u60c5\u90fd\u662f\u4e00\u5e06\u98ce\u987a\u7684\u3002\u4e00\u65e5\u529f\uff0c\u672a\u5fc5\u89c1\u679c\uff1b\u65e5\u65e5\u529f\uff0c\u94c1\u6775\u6210\u9488\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u5199\u6a21\u7ec4\u90fd\u9700\u8981\u4ec0\u4e48",children:"\u5199\u6a21\u7ec4\u90fd\u9700\u8981\u4ec0\u4e48\uff1f"}),"\n",(0,i.jsxs)(e.p,{children:["\u9996\u5148\uff0c\u6beb\u65e0\u7591\u95ee\u7684\uff0c\u4f60\u9700\u8981",(0,i.jsx)(e.strong,{children:"\u4e00\u53f0\u6027\u80fd\u4e0d\u9519\u7684\u7535\u8111"}),"\uff0c\u6700\u597d\u662fWindows~~(\u624d\u4e0d\u662f\u56e0\u4e3a\u6211\u6ca1\u7528\u8fc7\u522b\u7684\u7cfb\u7edf\u5462)~~\uff0c\u56e0\u4e3a\u672c\u6559\u7a0b\u4f7f\u7528Windows\u5e73\u53f0\u8bb2\u89e3\u3002"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u5176\u5b9e\uff0cLinux\u624d\u662f\u6700\u9002\u5408\u5f00\u53d1\u6a21\u7ec4\u7684\u73af\u5883\u3002\u53ea\u53ef\u60dcLinux\u7684\u8f6f\u4ef6\u8fd8\u662f\u6ca1Windows\u591a\uff0c\u51b5\u4e14\u5927\u5bb6\u4e5f\u53ea\u662f\u4e00\u5473\u5730\u5b89\u88c5Windows\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u662f\u8be6\u7ec6\u7684\u6700\u4f4e\u914d\u7f6e\u5355(\u4e0d\u4e00\u5b9a\u5fc5\u987b\u9ad8\u4e8e\u8fd9\u4e2a\u8981\u6c42\uff0c\u53ea\u4e0d\u8fc7\u7f16\u7a0b\u4f53\u9a8c\u4f1a\u6253\u6298\u6263)\uff1a"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["i5 7\u4ee3\u975e\u4f4e\u538b\u6216\u9ad8\u4e8e\u5176\u6027\u80fd\u7684",(0,i.jsx)(e.strong,{children:"\u5904\u7406\u5668"}),"\u2014\u2014\u8fd9\u80fd\u7ed9\u4f60\u63d0\u4f9b\u66f4\u597d\u7684\u7801\u5b57\u548c\u6d4b\u8bd5\u4f53\u9a8c\u3002"]}),"\n",(0,i.jsxs)(e.li,{children:["\u4e00\u9897\u5feb\u901f\u7684",(0,i.jsx)(e.strong,{children:"SSD\u5b58\u50a8"}),"\uff0c\u4f4d\u4e8e\u4f60\u7684\u4e3b\u677f\u4e0a\u2014\u2014\u4e0b\u9762\u4f1a\u89e3\u91ca"]}),"\n",(0,i.jsxs)(e.li,{children:["\u81f3\u5c11",(0,i.jsx)(e.strong,{children:"16GB\u5185\u5b58"}),"\u2014\u2014\u8fd9\u5c06\u786e\u4fdd\u4f60\u4e0d\u4f1a\u4e3a\u4e86\u4e00\u6b21\u6d4b\u8bd5\u5361\u534a\u5929\u3002"]}),"\n",(0,i.jsxs)(e.li,{children:["\u786e\u4fdd\u4f60\u7684C\u76d8",(0,i.jsx)(e.strong,{children:"\u81f3\u5c11"}),"\u6709",(0,i.jsx)(e.strong,{children:"10\u4e2aG\u7684\u9884\u7559\u7a7a\u95f4"}),"(",(0,i.jsx)(e.strong,{children:"\u4e0d\u662f\u5269\u4f59\u7a7a\u95f4\uff01\uff01\uff01"}),")\u2014\u2014\u9879\u76ee\u6784\u5efa\u6240\u9700\uff0c\u4e0d\u5efa\u8bae\u5361\u6781\u9650(5GB)\uff0c\u4f46\u662f\u5982\u679c\u4f60\u4f1a\u4e14\u80fd\u59a5\u5584\u64cd\u4f5c\u786c\u94fe\u63a5\u5219\u53e6\u5f53\u522b\u8bba\u3002"]}),"\n",(0,i.jsxs)(e.li,{children:["\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u7a33\u5b9a\u7684\u7f51\u7edc\u73af\u5883"}),"\uff0c\u6709\u68af\u5b50(\u54b3\u54b3\uff0c\u6211\u8bf4\u7684\u662f\u811a\u624b\u67b6\uff0c\u4f60\u542c\u9519\u4e86)\u66f4\u597d\u2014\u2014\u521d\u6b21\u6784\u5efa\u6a21\u7ec4\u4f1a\u89c6\u7f51\u7edc\u60c5\u51b5\u548c\u786c\u4ef6\u60c5\u51b5\u4ece20min\u5230[Failed]\u4e0d\u7b49\uff01\u8fd9\u53ef\u662f\u4e2a\u4e0d\u5c0f\u7684\u5dee\u8ddd\u5462\uff01"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u4e3a\u4ec0\u4e48\u6211\u8981\u63d0\u51fa\u5982\u6b64\u9ad8(\u8fd9\u771f\u7684\u7b97\u9ad8\u5417)\u7684\u6761\u4ef6\u5462......\u56e0\u4e3a\u6211\u521d\u4e2d\u4e24\u5e74\u7684\u5f00\u53d1\u90fd\u662f\u5728\uff1a"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u6253\u5f00\u7535\u8111"}),"\n",(0,i.jsx)(e.p,{children:"\u7b49\u5f858\u5206\u949f"}),"\n",(0,i.jsx)(e.p,{children:"\u53cc\u51fbIDEA"}),"\n",(0,i.jsx)(e.p,{children:"\u7b49\u5f857\u5206\u949f\uff0cIDEA\u6253\u5f00\u9879\u76ee"}),"\n",(0,i.jsx)(e.p,{children:"\u5199\u4ee3\u78014\u5206\u949f"}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u8fd0\u884c\u8c03\u8bd5"}),"\n",(0,i.jsx)(e.p,{children:"\u7b49\u5f8515\u5206\u949f\uff0c\u8fdb\u5165\u6e38\u620f\uff0c\u6b64\u65f6\u9f20\u6807\u4e0d\u592a\u53d7\u63a7\u5236"}),"\n",(0,i.jsx)(e.p,{children:"\u6d4b\u8bd5+\u5361\u6b7b\u5927\u698210\u5206\u949f"}),"\n",(0,i.jsx)(e.p,{children:"\u70b9\u51fb\u9000\u51fa\u6e38\u620f"}),"\n",(0,i.jsx)(e.p,{children:"\u7b49\u5f8520\u5206\u949f"}),"\n",(0,i.jsx)(e.p,{children:"\u7535\u8111\u786c\u4ef6\u534f\u8c03\u7a0d\u5fae\u7f13\u548c"}),"\n",(0,i.jsx)(e.p,{children:"\u7ee7\u7eed\u6539\u52a8\u4ee3\u7801......"}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u558f\uff0c\u8fd9\u4e00\u5207\u90fd\u662f\u56e0\u4e3a\u6211\u7684\u5de5\u4f5c\u672c\u4f7f\u7528\u7684\u662f",(0,i.jsx)(e.strong,{children:"5\u5e74\u524d"}),"(\u5bf9\u4e8e\u5f53\u65f6)\u7684\u4e00\u6b3eHDD\u786c\u76d8\uff0c\u5b83\u7684\u8001\u5316\u5f15\u8d77\u7684\u4f4e\u6548\u4f20\u8f93\u76f4\u63a5\u5bfc\u81f4\u4e86\u5f88\u591a\u5361\u987f\u7b49\u70e6\u4eba\u7684\u95ee\u9898\u3002\u8fd8\u6709\u6211\u90a3\u53ef\u601c\u76848GB\u5185\u5b58\uff0c\u4e00\u5f00\u6d4b\u8bd5\u5c31\u5f97\u4e0a97%\uff0c\u8f6c\u50a8\u4f30\u8ba1\u90fd\u5f97\u6c14\u7ea2\u6e29\u4e86\uff08"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u53ea\u6709\u7ecf\u5386\u8fc7\u5982\u6b64\u5361\u987f\u82e6\u96be\u4e4b\u4eba\uff0c\u624d\u80fd\u4f53\u4f1a\u73b0\u5728\u7684\u7f8e\u597d\u3002\u6709\u4e86\u65b0\u7535\u8111\u540e\uff0c\u6211\u534a\u5e74\u5f00\u53d1\u5b66\u4e60\u7684\u91cf\uff0c\u662f\u6211\u521d\u4e2d\u4e24\u5e74\u4e5f\u8fbe\u4e0d\u5230\u7684\u6c34\u5e73\u3002"}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5176\u6b21\uff0c\u8fd8\u9700\u8981",(0,i.jsx)(e.strong,{children:"\u5408\u9002\u7684\u73af\u5883"}),"\u3002\u5bf9\u4e8e\u672c\u6559\u7a0b\uff0c\u4f60\u9700\u8981\u5b89\u88c5\uff1a"]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Java--JDK21\u2014\u2014Java\u5f00\u53d1\u5fc5\u4e0d\u53ef\u5c11\u7684\u73af\u5883\u3002"}),"\n",(0,i.jsxs)(e.li,{children:["[IntelliJ IDEA Community Version](",(0,i.jsx)(e.a,{href:"https://www.jetbrains.com/idea/download/?section=windows",children:"Download IntelliJ IDEA \u2013 The Leading Java and Kotlin IDE"}),")"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e2a\u5148\u522b\u6025\u7740\u4e0b\u8f7d\uff0c\u6211\u4f1a\u5728\u4e0b\u4e00\u7ae0\u8be6\u7ec6\u8bb2\u89e3\u600e\u4e48\u5b89\u88c5\u7684\u3002"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsxs)(e.p,{children:["\u26a0\ufe0f",(0,i.jsx)(e.strong,{children:"\u6ce8\u610f"})]}),"\n",(0,i.jsxs)(e.p,{children:["\u672c\u6559\u7a0b\u6240\u6d89\u53ca\u7684\u6240\u6709\u8f6f\u4ef6\u5e38\u89c4\u7248\u672c",(0,i.jsx)(e.strong,{children:"\u5747\u65e0\u9700\u4ed8\u8d39"}),"\u3002\u8bf7\u52ff\u4e0a\u5f53\u53d7\u9a97\uff0c\u8bf7\u52ff\u4ece\u975e\u6b63\u89c4\u7f51\u7ad9\u4e0b\u8f7d\u672c\u6559\u7a0b\u8d44\u6e90\u3002",(0,i.jsx)(e.strong,{children:"\u5982\u679c\u56e0\u6b64\u4ea7\u751f\u4efb\u4f55\u95ee\u9898\uff0c\u540e\u679c\u81ea\u8d1f\u3002"})]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u6211\u90fd\u770b\u8fc7\u54ea\u4e9b\u6a21\u7ec4\u6559\u7a0b",children:"\u6211\u90fd\u770b\u8fc7\u54ea\u4e9b\u6a21\u7ec4\u6559\u7a0b\uff1f"}),"\n",(0,i.jsx)(e.p,{children:"\u4e3a\u4e86\u65b9\u4fbf\uff0c\u6211\u4f1a\u5728\u8fd9\u91cc\u6309\u65f6\u95f4\u987a\u5e8f\u5217\u51fa\u6240\u6709\u6211\u770b\u8fc7\u7684\u6559\u7a0b\u3002\u8fd9\u4e9b\u6559\u7a0b\u90fd\u662f\u53ef\u4ee5\u5728\u56fd\u5185\u76f4\u63a5\u8bbf\u95ee\u7684\uff0c\u6240\u4ee5\u4e0d\u7528\u62c5\u5fc3\u3002"}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"brianShan974\u7684\u6a21\u7ec4\u6559\u7a0b"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u6211\u521a\u5f00\u59cb\u5b66\u7684\u65f6\u5019\u770b\u5230\u7684\u7b2c\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u4e2d\u6587"}),"\u6559\u7a0b\u3002\u8fd9\u662f\u9488\u5bf91.12.2\u7684\uff0c\u5e76\u4e14\u5bf9\u4e8e\u73b0\u5728\u5df2\u7ecf",(0,i.jsx)(e.strong,{children:"\u8fc7\u65f6"}),"(\u5c31\u662f\u66f4\u65b0\u540e\u5f88\u591a\u65b9\u6cd5\u6539\u540d\u4e86\u7684\u610f\u601d)\u3002\u4f46\u5b83\u5bf9\u6211\u7684\u5e2e\u52a9\u5f88\u5927\uff0c\u81f3\u5c11\u8ba9\u6211\u5b66\u4f1a\u4e86\u600e\u4e48\u5f00\u59cb\u6784\u5efa\u548c\u5199\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://www.bilibili.com/video/BV1vE411H7Gn",children:"\u4ece\u4e0d\u61c2Java\u5230Minecraft\u6a21\u7ec4\u5236\u4f5c\u57fa\u7840\u7bc7"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Forge Documentation"})}),"\n",(0,i.jsxs)(e.p,{children:["\u5373Forge\u6587\u6863\uff0c\u6211\u65e9\u671f\u7ecf\u5e38\u770b\u7684\u53e6\u4e00\u4e2a\u6559\u7a0b\uff0c\u662f",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://docs.minecraftforge.net/en",children:"Forge Documentation"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"McJty\u7684\u6a21\u7ec4\u6559\u7a0b"})}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\uff0c\u5f88\u8be6\u7ec6\uff0c\u6709\u89c6\u9891\u7248\u548c\u535a\u5ba2\u7248\uff0c\u535a\u5ba2\u7248\u6db5\u76d6\u4e86\u5f88\u591a\u7248\u672c\u7684\u6559\u7a0b\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://www.mcjty.eu/docs/intro",children:"McJty\u7684\u6a21\u7ec4\u6559\u7a0b\u535a\u5ba2(\u539f\u6587)"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://www.bilibili.com/video/BV1sL4y1b7WK",children:"(B\u7ad9UP\u642c\u8fd0)Minecraft Forge 1.18.1 Modding Tutorials"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"KaupenJoe\u7684\u6a21\u7ec4\u6559\u7a0b"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u4e2a\u4e5f\u662fB\u7ad9UP\u642c\u8fd0\u7684\uff0c",(0,i.jsx)(e.strong,{children:"\u7eaf\u82f1\u6587"}),"\uff0c\u6709\u5f88\u591a\u96c6\uff0c\u53ea\u662f\u6ca1\u6709\u5408\u5e76\u4e3a\u96c6\u5408\u3002\u597d\u50cf\u4e5f\u6709\u5bf9\u6807\u5176\u4ed6\u7248\u672c\u7684\u6559\u7a0b\u3002(\u6211\u4e4b\u524d\u62ff\u5b83\u5f53\u542c\u529b\u7d20\u6750\u7684\uff0c\u6bd4\u8f83\u7b80\u5355\uff0c",(0,i.jsx)(e.strong,{children:"\u80fd\u542c\u61c2"}),")"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://www.bilibili.com/video/BV1XZ4y1e7xF",children:"Minecraft 1.19 Forge Modding Tutorial"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Forge Community Wiki"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u4e2a",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\u7ad9\u70b9\u56fd\u5185\u8bbf\u95ee\u901f\u5ea6\u6bd4\u8f83\u6162\uff0c\u4e0d\u8fc7\u81f3\u5c11\u80fd\u770b\u3002\u5206\u7c7b\u7e41\u591a\uff0c\u8a00\u7b80\u610f\u8d45\uff0c\u9002\u5408\u53c2\u8003\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://forge.gemwire.uk/wiki/Main_Page",children:"Forge Community Wiki"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Minecraft Developer Guide"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u7531mouse0w0(\u8017\u5b50)\u5927\u4f6c\u6574\u7406\u7684\u4e00\u4efd\u8d85\u7ea7\u4e30\u5bcc\u7684\u6559\u7a0b\u548c\u8d44\u6e90\u7684",(0,i.jsx)(e.strong,{children:"\u4e2d\u6587"}),"\u6e05\u5355\u3002\u4e0d\u8fc7GitHub\u8bbf\u95ee\u5f88\u4e0d\u7a33\u5b9a\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/mouse0w0/MinecraftDeveloperGuide",children:"MinecraftDeveloperGuide"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"NeoForge Documentation"})}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u5c31\u662f\u672c\u6559\u7a0b\u7684\u6838\u5fc3\u53c2\u8003\uff0cNeoForge\u7684\u5b98\u65b9",(0,i.jsx)(e.strong,{children:"\u82f1\u6587"}),"\u6587\u6863\u3002"]}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://docs.neoforged.net/docs/gettingstarted/",children:"NeoForge Documentation"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4ee5\u4e0a\uff0c\u57fa\u672c\u5c31\u662f\u6211\u770b\u8fc7\u7684\u5168\u90e8\u6559\u7a0b\u4e86\u3002B\u7ad9\u4e0a\u8fd8\u6709\u4e2a\u5927\u4f6c\u53ebFlandre\u8299\u5170",(0,i.jsx)(e.sup,{children:(0,i.jsx)(e.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),"\uff0c\u4ed6\u7684\u6559\u7a0b\u6211\u8fd8\u6ca1\u770b\u8fc7\uff0c\u4e0d\u8fc7\u5e94\u8be5\u4e5f\u5f88\u4e0d\u9519\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u54e6\u5bf9\u4e86\uff0c\u9053\u5bb6\u6df1\u6e56\u5927\u4f6c\u5f88\u65e9\u524d\u5c31\u521b\u5efa\u4e86\u5728QQ\u4e0a\u7684\u76f8\u5173\u7fa4\u804a\uff0c\u6db5\u76d6\u4e86\u6784\u5efa\u95ee\u9898\u548c\u7f16\u7a0b\u95ee\u9898\u7684\u89e3\u7b54\uff1b\u8fd8\u6709\u4e00\u4e2a\u56fd\u5185\u7684\u6a21\u7ec4\u5f00\u53d1\u8005\u793e\u533a\u540d\u4e3aTeaCon\uff0c\u4e5f\u662f\u5927\u4f6c\u4e91\u96c6\u3002\u4ee5\u4e0a\u7fa4\u4f53\uff0c\u5efa\u8bae\u81ea\u884c\u67e5\u627e\uff0c\u8fd9\u91cc\u4e0d\u4f5c\u8fc7\u591a\u63a8\u5e7f\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u53e6\u5916\uff0c\u6211\u4eecTi adventurers' party\u4e5f\u6709\u81ea\u5df1\u7684\u7fa4\u804a\uff0c\u73b0\u5728\u540c\u65f6\u6709\u7740\u5f00\u53d1\u7b54\u7591\u7684\u529f\u80fd\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"\u7ae0\u672b\u5c0f\u8bb0",children:"\u7ae0\u672b\u5c0f\u8bb0"}),"\n",(0,i.jsx)(e.p,{children:"\u8bf4\u5b9e\u8bdd\uff0c\u6211\u4e5f\u4e0d\u6e05\u695a\u6211\u4ec0\u4e48\u65f6\u5019\u80fd\u628a\u8fd9\u4e2a\u5751\u586b\u5b8c\u3002\u672c\u6765\u662f\u521d\u4e2d\u5c31\u60f3\u51fa\u4e00\u4e2a\u50cf\u6837\u7684\u6559\u7a0b\u56de\u9988\u793e\u533a\u7684\uff0c\u4f46\u662f\u4e00\u76f4\u6ca1\u80fd\u4ed8\u8bf8\u884c\u52a8\uff0c\u53ef\u80fd\u8fd9\u5c31\u662f\u6211\u7684\u4e00\u5927\u5f31\u70b9\u5427\u3002\u9ad8\u4e8c\u7684\u5b66\u4e60\u8fd8\u662f\u6709\u4e9b\u7e41\u5fd9\u7684\uff0c\u5076\u5c14\u653e\u653e\u677e\uff0c\u548c\u5927\u5bb6\u804a\u804a\u5929\uff0c\u751f\u6d3b\u5012\u4e5f\u80fd\u5145\u5b9e\u8bb8\u591a\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5bf9\u4e86\uff0c\u7ed9\u4f60\u4eec\u770b\u770b\u6211\u4e0d\u518d\u7f16\u5199Ti works\u7248\u672c\u7684\u6cf0\u62c9\u745e\u4e9a\u6a21\u7ec4\u7684\u539f\u56e0\u4e4b\u4e00\uff0c\u5f88\u597d\u7b11\u7684(\u53ef\u80fd\u5427\uff1f) :"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"\u5728\u5929\u7a7a\u4e2d\u7ff1\u7fd4\u7684\u6076\u9b54\u773c\u8f7b\u8f7b\u78b0\u4e86\u4e00\u4e0b\u5730\u9762\u7136\u540e\u6454\u6b7b\u4e86\uff08",src:s(1582).A+"",title:"\u5728\u5929\u7a7a\u4e2d\u7ff1\u7fd4\u7684\u6076\u9b54\u773c\u8f7b\u8f7b\u78b0\u4e86\u4e00\u4e0b\u5730\u9762\u7136\u540e\u6454\u6b7b\u4e86\uff08",width:"480",height:"270"})}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u7f16\u8f91\u4e8e2024\u5e7410\u670826\u65e5"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u4fee\u6b63\u4e8e2025\u5e746\u670828\u65e5\uff0c\u5e76\u6dfb\u52a0\u4e86\u6807\u8bc6\u6027\u5934"}),"\n",(0,i.jsx)(e.p,{children:"MakerTechno\u6539\u5199\u4e8e2025\u5e748\u67084\u65e5\uff0c\u66f4\u6539\u4e86\u672c\u7ad9\u6559\u7a0b\u7684\u534f\u8bae\u7c7b\u578b"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Copyright \xa9 2025 MakerTechno. \u4fdd\u7559\u6240\u6709\u6743\u5229\u3002"})}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u660e\u786e\u6ce8\u660e\u539f\u6587\u51fa\u5904\uff08\u5305\u62ec\u4f5c\u8005\u540d\u4e0e\u539f\u59cb\u94fe\u63a5\uff09\u7684\u524d\u63d0\u4e0b\uff0c\u5141\u8bb8\u975e\u5546\u4e1a\u6027\u5730\u5f15\u7528\u672c\u4f5c\u54c1\u7247\u6bb5\u3002\u5f15\u7528\u5185\u5bb9\u4e0d\u5f97\u8d85\u8fc7\u539f\u6587\u7684 20%\uff0c\u4e0d\u5f97\u6b6a\u66f2\u539f\u610f\u6216\u7528\u4e8e\u8bef\u5bfc\u6027\u8bed\u5883\u3002\u6574\u7bc7\u8f6c\u8f7d\u6216\u590d\u5236\u4f7f\u7528\u9700\u83b7\u5f97\u4f5c\u8005\u6388\u6743\u3002\u672c\u7f51\u7ad9\u6240\u6709\u6559\u7a0b\u4e0d\u5141\u8bb8\u5546\u7528\uff0c\u4e5f\u4e0d\u4f1a\u6388\u4e88\u5546\u7528\u6388\u6743\u3002"}),"\n","\n",(0,i.jsxs)(e.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(e.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsxs)(e.li,{id:"user-content-fn-1",children:["\n",(0,i.jsxs)(e.p,{children:["\u627e\u4e86\u4e00\u4e2a\u4ecb\u7ecd\u89c6\u9891: ",(0,i.jsx)(e.a,{href:"https://www.bilibili.com/video/BV1QLakeyEe4/?spm_id_from=333.337.search-card.all.click&vd_source=34c1249d35a62cc60805ee3bc86c1763",children:"[\u6c47\u6d41\u6765\u4e16] - \u7fa4\u7cfb\u4e0e\u7ed3\u6784\u66f4\u65b0"})," ",(0,i.jsx)(e.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{id:"user-content-fn-2",children:["\n",(0,i.jsxs)(e.p,{children:["\u8299\u5170\u7684Bilibili\u7a7a\u95f4: ",(0,i.jsx)(e.a,{href:"https://space.bilibili.com/4550069",children:"https://space.bilibili.com/4550069"})," ",(0,i.jsx)(e.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(t,{...n})}):t(n)}}}]);
\ No newline at end of file
diff --git a/docs/assets/js/cb584909.844cf25b.js b/docs/assets/js/cb584909.844cf25b.js
deleted file mode 100644
index d43bcf6..0000000
--- a/docs/assets/js/cb584909.844cf25b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[9931],{3366:(n,e,r)=>{r.d(e,{A:()=>s});const s=r.p+"assets/images/taagNew-57ecaf5e847304816839cba1492bf729.png"},3407:(n,e,r)=>{r.d(e,{A:()=>s});const s="data:image/png;base64,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"},4984:(n,e,r)=>{r.d(e,{A:()=>s});const s=r.p+"assets/images/direct-2bc91a4cce95210c31f647b1551c4fdd.png"},5686:(n,e,r)=>{r.d(e,{A:()=>s});const s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAD2AAAA9gAXp4RY0AAAEZSURBVEhLxZLPSgJRFIfvgG1ca0EPIYjSE0T7kBYSBe3btPAlXJiB4NMo4ZMogU8Q0ya170y/caPica7oD765956/DOeEGK3K1/fQ0vO0ovEDLEVb5tOIho/wAyth9ye5D1Ki0yWalDi68JYZQhjCAl6zVwh96CTp/Pf/eUTRvAIjyP/4RS7zPctmvjFU5TqOKFiHqRp8wY1ca2FrwkwxFtuQK04UsnmnKjyBK7k2hO8SPhVrOYX2IhPJJeipmDGAC7l3ymLgQznGO9ju+EXCznl7RU6xvSBw77y9IvewvSDAPW+vqLF/LzAWmrdXVgu27wWX6Hl7Re3NveBTg2+ImrdX9Mj3wsZRz423ED1vr+hle3Gn5zkVwh9jV9QT0GFpTgAAAABJRU5ErkJggg=="},7414:(n,e,r)=>{r.d(e,{A:()=>s});const s=r.p+"assets/images/taag-e2251a045b56f087b0c800c08e290099.png"},7553:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>t,contentTitle:()=>d,default:()=>o,frontMatter:()=>l,metadata:()=>s,toc:()=>A});const s=JSON.parse('{"id":"TheTrackers/the_trackers","title":"TheTrackers","description":"logo","source":"@site/apis/TheTrackers/index.md","sourceDirName":"TheTrackers","slug":"/the_trackers","permalink":"/docs/apis/the_trackers","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":"the_trackers","slug":"/the_trackers"},"sidebar":"apiSidebar"}');var i=r(4848),c=r(8453);const l={id:"the_trackers",slug:"/the_trackers"},d="TheTrackers",t={},A=[{value:"\u8ddf\u8e2a\u8be6\u89e3",id:"\u8ddf\u8e2a\u8be6\u89e3",level:2},{value:"\u4e2d\u5fc3\u73af\u7ed5\u5f0f(TRelativeCursor)",id:"\u4e2d\u5fc3\u73af\u7ed5\u5f0ftrelativecursor",level:3},{value:"\u7ed1\u5b9a\u5b9a\u4f4d\u5f0f(TDirectProjCursor)",id:"\u7ed1\u5b9a\u5b9a\u4f4d\u5f0ftdirectprojcursor",level:3},{value:"\u914d\u7f6e\u6a21\u7ec4",id:"\u914d\u7f6e\u6a21\u7ec4",level:2},{value:"\u7ed9\u6a21\u7ec4\u5f00\u53d1\u8005\u770b\u7684\u90e8\u5206",id:"\u7ed9\u6a21\u7ec4\u5f00\u53d1\u8005\u770b\u7684\u90e8\u5206",level:2}];function h(n){const e={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"thetrackers",children:"TheTrackers"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"logo",src:r(8685).A+"",width:"64",height:"64"})}),"\n",(0,i.jsx)(e.p,{children:"\u8be5\u6a21\u7ec4\u63d0\u4f9b\u4e86\u591a\u79cd\u6307\u5411\u751f\u7269\u5b9e\u4f53\u7684\u63d0\u793a\uff0c\u8f85\u52a9\u73a9\u5bb6\u5bfb\u627e\u76ee\u6807\uff0c\u540c\u65f6\u4e5f\u662f\u4e00\u4e2a\u7279\u6b8a\u529f\u80fdHUD\u5e93\u3002"}),"\n",(0,i.jsxs)(e.p,{children:["\u6a21\u7ec4\u9ed8\u8ba4\u5185\u7f6e\u4e86\u672b\u5f71\u9f99\u548c\u51cb\u7075\u7684\u63d0\u793a\u6307\u9488\u4ee5\u53ca\u4e0e",(0,i.jsx)(e.a,{href:"https://www.mcmod.cn/class/18650.html",children:"\u6c47\u6d41\u6765\u4e16"}),"\u8054\u52a8\u7684\u751f\u7269\u63d0\u793a\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6a21\u7ec4\u5df2\u5728\u6c47\u6d41\u6765\u4e16",(0,i.jsx)(e.strong,{children:"\u5185\u7f6e"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u6a21\u7ec4\u914d\u7f6e\uff08\u6587\u4ef6\u6216\u6e38\u620f\u5185\u914d\u7f6e GUI\uff09\u5bf9\u6a21\u7ec4\u8fdb\u884c\u4ee5\u4e0b\u8bbe\u7f6e\uff1a"}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsx)(e.li,{children:"\u5f00\u5173\uff1a\u8bbe\u7f6e\u662f\u5426\u542f\u7528\u672c\u6a21\u7ec4\u7684\u8ffd\u8e2a\u529f\u80fd\uff1b"}),"\n",(0,i.jsx)(e.li,{children:"\u8ffd\u8e2a\u6307\u9488\u5927\u5c0f\uff1a\u63a7\u5236\u5168\u5c40\u6307\u9488\u7684\u76f8\u5bf9\u5927\u5c0f\uff0c\u9ed8\u8ba4\u503c0.6\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u6700\u5927\u8ffd\u8e2a\u6570\u91cf\uff1a\u63a7\u5236\u8ffd\u8e2a\u7684\u6570\u91cf\uff0c\u9632\u6b62\u592a\u591a\u6307\u9488\u906e\u6321\u5c4f\u5e55\u3002\u6700\u7ec8\u53ea\u4f1a\u663e\u793a\u79bb\u73a9\u5bb6\u6700\u8fd1\u7684n\u4e2a\u751f\u7269\u3002\u9ed8\u8ba4\u503c10\uff0c\u6700\u5927400\uff08\u771f\u7684\u6709\u4eba\u9700\u8981\u6bd4400\u8fd8\u591a\u7684\u8ffd\u8e2a\u5417\uff1f\u9700\u8981\u7684\u8bdd\u6765\u7fa4\u91cc\u8ddf\u6211\u8bf4\uff0c\u6211\u4f1a\u6539\u7684\uff09\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u4f4d\u7f6e\u5237\u65b0\u95f4\u9694\uff1a\u4ece\u4e16\u754c\u4e2d\u9644\u8fd1\u7684\u533a\u57df\u83b7\u53d6\u5e76\u66f4\u65b0\u5b9e\u4f53\u4f4d\u7f6e\u7684\u6700\u77ed\u65f6\u95f4\uff0c\u9ed8\u8ba4\u503c\u662f\u6700\u5c0f\u503c1\uff08\u6700\u5feb\uff09\u3002"}),"\n",(0,i.jsxs)(e.li,{children:["\u4e2d\u5fc3\u73af\u7ed5\u5f0f\u6307\u9488\u5f00\u5173\uff1a\u6700\u5e38\u7528\u7684\u6307\u9488\u7c7b\u578b\u4e4b\u4e00\u3002\u6709\u5173\u4e2d\u5fc3\u73af\u7ed5\u5f0f\u7684\u8be6\u60c5\u8bf7\u89c1",(0,i.jsx)(e.strong,{children:"\u4e0b\u6587"}),"\u3002"]}),"\n",(0,i.jsxs)(e.li,{children:["\u6295\u5f71\u7b97\u6cd5\uff1a\u53ef\u4ee5\u9009\u62e9\u5728",(0,i.jsx)(e.strong,{children:"\u4e2d\u5fc3\u73af\u7ed5\u6295\u5f71"}),"\u4e0b\u4f7f\u7528\u7684\u7b97\u6cd5\u3002\u827e\u6258\u592b\uff08Aitoff\uff09\u53ef\u80fd\u662f\u8868\u73b0\u6700\u6b63\u5e38\u7684\u6295\u5f71\uff0c\u6240\u4ee5\u4e00\u822c\u4e0d\u5efa\u8bae\u5207\u6362\uff1b"]}),"\n",(0,i.jsxs)(e.li,{children:["\u9501\u5b9a\u5b9a\u4f4d\u5f0f\u6307\u9488\u5f00\u5173\uff1a\u5728\u5176\u5b83\u6e38\u620f\u4e2d\u66f4\u4e3a\u5e38\u89c1\u7684\u4e00\u79cd\u4efb\u52a1\u70b9\u6807\u8bb0\u3002\u6709\u5173\u9501\u5b9a\u5b9a\u4f4d\u5f0f\u7684\u8be6\u60c5\u8bf7\u89c1",(0,i.jsx)(e.strong,{children:"\u4e0b\u6587"}),"\u3002"]}),"\n",(0,i.jsxs)(e.li,{children:["\u7ecf\u5ea6\u8f74\u5f00\u5173\uff1a\u9884\u5206\u914d\u7684\u7b2c\u4e09\u79cd\u6307\u793a\u7c7b\u578b\uff0c\u76ee\u524d",(0,i.jsx)(e.strong,{children:"\u6682\u672a\u51c6\u5907\u5f00\u53d1"}),"\uff0c\u6240\u4ee5\u8be5\u6761\u76ee\u65e0\u6548\u3002"]}),"\n",(0,i.jsxs)(e.li,{children:["XXX\u5f0f\u8ddf\u8e2a\u6e05\u5355\uff1a\u8fd9\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e2a\u6761\u76ee\u5bf9\u5e94\u4e00\u79cd\u5b9e\u4f53\uff08EntityType\uff09+\u6307\u9488\u7ec4\uff08Cursor\uff09\uff0c\u53ef\u4ee5\u586b\u5165\u952e\u540d\u8bbe\u7f6e\u8ffd\u8e2a\u54ea\u7c7b\u5b9e\u4f53\u3001\u4f7f\u7528\u4f55\u79cd\u6307\u9488\u63d0\u793a\uff0c\u8be6\u89c1\u4e0b\u6587",(0,i.jsx)(e.strong,{children:"\u914d\u7f6e\u6a21\u7ec4"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"\u8ddf\u8e2a\u8be6\u89e3",children:"\u8ddf\u8e2a\u8be6\u89e3"}),"\n",(0,i.jsx)(e.p,{children:"\u76ee\u524d\u9650\u5b9a\u8ddf\u8e2a\u7684\u8ddd\u79bb\u662f [x\uff1a\xb164 \u683c, y\uff1a+64/-48 \u683c, z\uff1a\xb164 \u683c]\u3002"}),"\n",(0,i.jsx)(e.h3,{id:"\u4e2d\u5fc3\u73af\u7ed5\u5f0ftrelativecursor",children:"\u4e2d\u5fc3\u73af\u7ed5\u5f0f(TRelativeCursor)"}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"\u4e2d\u5fc3\u73af\u7ed5\u5f0f\u6307\u9488"}),"\u662f\u76ee\u524d\u5df2\u7ecf\u5b8c\u6210\u7684\u6307\u793a\u6a21\u5f0f\u4e4b\u4e00\uff0c\u5b83\u4f1a\u521b\u5efa\u73af\u7ed5\u5728\u5c4f\u5e55\u4e2d\u5fc3\u7684 HUD \u6307\u9488\u6307\u5411\u76ee\u6807\u751f\u7269\u5b9e\u4f53\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u8fd9\u662f\u65e7\u7248\uff08\u8bf7\u5ffd\u7565\u684c\u5ba0\uff09\uff1a\r\n",(0,i.jsx)(e.img,{alt:"taag.png",src:r(7414).A+"",width:"651",height:"348"})]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u662f\u65b0\u7248\uff08\u8fd8\u6ca1\u4fee\u590d\u6307\u9488\u7f29\u653e\u95ee\u9898\u65f6\u622a\u7684\uff09\uff1a"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"taagNew.png",src:r(3366).A+"",width:"893",height:"549"})}),"\n",(0,i.jsxs)(e.p,{children:["\u4e0d\u96be\u770b\u51fa\u8fd9\u662f\u63d0\u793a\u300c\u4f60\u8be5",(0,i.jsx)(e.strong,{children:"\u5411\u54ea\u91cc\u8f6c"}),"\u80fd\u770b\u5230\u5b9e\u4f53\u300d\u800c",(0,i.jsx)(e.strong,{children:"\u4e0d\u662f"}),"\u300c\u5b9e\u4f53",(0,i.jsx)(e.strong,{children:"\u5728"}),"\u4e16\u754c\u7684",(0,i.jsx)(e.strong,{children:"\u54ea\u4e2a\u4f4d\u7f6e"}),"\u300d\u7684\u6307\u9488\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u8be5\u6307\u9488\u4f1a\u4f9d\u636e\u4f60\u201c\u5e94\u8be5\u8f6c\u52a8\u89c6\u89d2\u5ea6\u6570\u7684\u591a\u5c11\u201d\u800c\u8ddd\u79bb\u4e2d\u5fc3\u66f4\u8fdc\u6216\u66f4\u8fd1\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u5728\u66f4\u52a0\u9760\u8fd1\u4e2d\u5fc3\u7684\u4f4d\u7f6e\uff0c\u4e5f\u5c31\u662f\u5b9e\u4f53\u65b9\u5411\u4e0e\u4f60\u7684\u89c6\u89d2\u57fa\u672c\u91cd\u5408\u7684\u65f6\u5019\uff0c\u6307\u9488\u4f1a\u9010\u6e10\u53d8\u6de1\u3002\uff08\u65e7\u56fe\u4e2d\u7eff\u8272\u6307\u5411\u7684\u662f\u9644\u8fd1\u7684\u672b\u5f71\u4eba\uff09"}),"\n",(0,i.jsxs)(e.p,{children:["\u8be5\u6295\u5f71\u6709\u4e09\u79cd\u7b97\u6cd5\uff1a\u58a8\u5361\u6258\uff08Mercator\uff09\u6295\u5f71\u3001\u57c3\u6258\u592b\uff08Aitoff\uff09\u6295\u5f71\u548c\u6e29\u514b\u5c14\uff08Winkel\uff09\u4e09\u91cd\u6295\u5f71\uff0c\u8ba1\u7b97\u601d\u7ef4\u8bf7\u89c1",(0,i.jsx)(e.a,{href:"https://github.com/MakerTechno/EntityTrackerHUD/blob/master/ALGORITHM.MD",children:"\u903b\u8f91"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u7ecf\u8fc7\u6d4b\u8bd5\uff0c\u4e09\u79cd\u6295\u5f71\u8868\u89c2\u4e0a\u5dee\u5f02\u4e0d\u5927\uff0c\u800c Aitoff \u5728\u5e94\u7528\u573a\u666f\u4e0b\u8868\u73b0\u6700\u597d\uff0c\u6545\u4e0d\u5efa\u8bae\u9009\u62e9\u5176\u5b83\u4e24\u79cd\u6295\u5f71\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u6709\u65f6\u5019\u6211\u4f1a\u601d\u8003\u662f\u5426\u4f7f\u7528\u539f\u7248\u7684\u77e9\u9635\u5b8c\u6210\u4e8c\u7ef4\u5230\u4e09\u7ef4\u7684\u65b9\u5411\uff0c\u4e0d\u8fc7\u7ecf\u8fc7\u7814\u7a76\uff0c\u5e26\u6709\u4e00\u70b9\u70b9\u5f27\u5f62\u504f\u79fb\u7684\u6307\u793a\u6548\u679c\u201c\u8c8c\u4f3c\u201d\u4f1a\u597d\u7528\u4e00\u70b9\u3002"}),"\n",(0,i.jsx)(e.h3,{id:"\u7ed1\u5b9a\u5b9a\u4f4d\u5f0ftdirectprojcursor",children:"\u7ed1\u5b9a\u5b9a\u4f4d\u5f0f(TDirectProjCursor)"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"direct.png",src:r(4984).A+"",width:"854",height:"512"})}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u5f20\u56fe\u662f\u5728\u5f00\u53d1\u672c\u6a21\u7ec4\u7684\u672c\u4f53--\u6c47\u6d41\u6765\u4e16\u7684\u77ff\u63a2\u836f\u6c34\u65f6\u5019\u622a\u7684\uff0c\u6807\u8bb0\u77ff\u7269\u7684\u56fe\u6807\u5c31\u662f\u901a\u8fc7TheTrackers\u5b9e\u73b0\u7684\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e2a\u6a21\u5f0f\u4f1a\u76f4\u63a5\u628a\u6307\u9488\u7cca\u5728\u76ee\u6807\u751f\u7269\u4e0a\u3002\uff08\u4e0d\u662f\u5728\u4e16\u754c\u4e2d\u7684\u6807\u8bb0\uff0c\u800c\u662f\u786e\u5b9e\u4ece\u4e8c\u7ef4\u5c4f\u5e55\u7cca\u8fc7\u53bb\u7684\uff09"}),"\n",(0,i.jsx)(e.p,{children:"\u6709\u5355\u72ec\u663e\u793a\u5927\u5934\u8d34\u7684\u7c7b\u578b\u548c\u4e09\u4e2a\u56fe\u7247\u73af\u7ed5\u76ee\u6807\u7684\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u8fd8\u6709\u4e24\u79cd\u7c7b\u578b\u662f\u5f69\u86cb\uff01\u60f3\u77e5\u9053\u5c31\u53bbMCMOD\u7ffb\u6c47\u6d41\u7684\u66f4\u65b0\u65e5\u5fd7\u5427Lol\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"\u914d\u7f6e\u6a21\u7ec4",children:"\u914d\u7f6e\u6a21\u7ec4"}),"\n",(0,i.jsxs)(e.p,{children:["\u5728\u6e38\u620f\u4e2d\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u683c\u5f0f\u5728\u914d\u7f6e\u4e2d\u521b\u5efa\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u4e2d\u5fc3\u73af\u7ed5\u5f0f"}),"\u6307\u9488\u7c7b\u578b\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{children:"|<\u6307\u9488\u7bad\u5934\u7c7b\u578b>|<\u6307\u9488\u56fe\u6807\u7c7b\u578b>\n"})}),"\n",(0,i.jsxs)(e.p,{children:["\u4f8b\u5982\uff0c\u6a21\u7ec4\u9ed8\u8ba4\u914d\u7f6e\u4e2d\u7684",(0,i.jsx)(e.strong,{children:"\u672b\u5f71\u9f99"}),"\u63d0\u793a\u5668\u662f\u8fd9\u6837\u7684\uff1a"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{children:"minecraft:ender_dragon|normal|ender_dragon_head\n"})}),"\n",(0,i.jsxs)(e.p,{children:["\u7136\u540e\u5c31\u662f",(0,i.jsx)(e.strong,{children:"\u7ed1\u5b9a\u5b9a\u4f4d\u5f0f"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u79cd\u6a21\u5f0f\u7684\u914d\u7f6e\u66f4\u590d\u6742\uff0c\u5e76\u4e14\u5904\u4e8e\u5b9e\u9a8c\u9636\u6bb5\u3002\u4ee5\u4e0b\u662f\u914d\u7f6e\u89c4\u5219\uff0c\u88ab\u5706\u62ec\u53f7\u56f4\u8d77\u6765\u7684\u90e8\u5206\u8868\u793a\u53ef\u5199\u53ef\u4e0d\u5199\uff0c\u4f46\u662f\u5199\u4e86\u6548\u679c\u786e\u5b9e\u4e0d\u540c\u3002"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{children:" |<\u6307\u9488\u7c7b\u578b>:<\u6307\u9488\u56fe\u6807\u7c7b\u578b>(|\u5f69\u86cb\u5c5e\u6027)\n"})}),"\n",(0,i.jsx)(e.p,{children:"\u76ee\u524d\u63d0\u4f9b\u7684\u6307\u9488\u7bad\u5934\u6709\uff1a"}),"\n",(0,i.jsx)(e.p,{children:"normal\u3001normal_red\u3001normal_green\u3001normal_white\u3002"}),"\n",(0,i.jsx)(e.p,{children:"normal\u5c31\u662f\u524d\u6587\u4e2d\u5217\u51fa\u7684\u65b0\u56fe\u7684\u6307\u9488\uff0c\u7f8e\u672f\u6765\u81ea\u7262\u6795(LazyPillow)"}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u56fe\u662f normal_red\uff1a",(0,i.jsx)(e.img,{alt:"red.png",src:r(5686).A+"",width:"32",height:"16"}),"\uff0c\u66fe\u7ecf\u7684\u6307\u793a\u8d34\u56fe\uff0c\u73b0\u5728\u5df2\u7ecf\u5168\u90e8\u88abnormal\u53d6\u4ee3\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u7406\u8bba\u4e0a\uff0c\u4efb\u4f55\u8d34\u56fe\u8d44\u6e90\u90fd\u53ef\u4ee5\u6210\u4e3a\u6307\u9488\uff0c\u4e3b\u8981\u770b\u4e2a\u4eba\u559c\u597d"}),"\n",(0,i.jsx)(e.p,{children:"\u76ee\u524d\u63d0\u4f9b\u7684\u56fe\u6807\u6709\uff1a"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"[\u57fa\u4e8e\u539f\u7248] ender_dragon_head\u3001wither_head\uff1b"}),"\n",(0,i.jsx)(e.li,{children:"[\u6c47\u6d41\u6765\u4e16] king_slime\uff08\u53f2\u83b1\u59c6\u738b\uff09\u3001eye_of_cthulhu\uff08\u514b\u82cf\u9c81\u4e4b\u773c\uff09\u3001brain_of_cthulhu\uff08\u514b\u82cf\u9c81\u4e4b\u8111\uff09\u3001queen_bee\uff08\u8702\u540e\uff09\u3001eater_of_worlds\uff08\u4e16\u754c\u541e\u566c\u8005\uff09\u3001skeletron\uff08\u9ab7\u9ac5\u738b\uff08\u6851\u767e\u9897\u591f\u4e0d\u591f\uff1f\uff09\uff09\u3001deerclops\uff08\u5de8\u9e7f\uff09\u3001wall_of_flesh\uff08\u8840\u8089\u4e4b\u5899\uff09\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u8fd9\u4e9b\u7528\u4e8e\u6c47\u6d41\u6765\u4e16\u7684\u56fe\u6807\u5176\u5b9e\u4e0d\u9700\u8981\u52a0\u8f7d\u6c47\u6d41\u6765\u4e16\u4f5c\u4e3a\u524d\u7f6e\u4e5f\u80fd\u4f7f\u7528\u3002"}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:"\u5728\u67d0\u90e8\u5206\u586b\u5165 none \u65f6\u6307\u9488\u7684\u8fd9\u4e2a\u90e8\u5206\u4e0d\u4f1a\u663e\u793a\u4efb\u4f55\u4e1c\u897f"}),"\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u56fe\u662f ender_dragon_head\uff08\u53d6\u6750\u81ea MCMod \u767e\u79d1\uff09\uff1a",(0,i.jsx)(e.img,{alt:"ender_dragon.png",src:r(3407).A+"",width:"32",height:"32"})]}),"\n",(0,i.jsx)(e.p,{children:"\u4f60\u8fd8\u53ef\u4ee5\u7528\u6750\u8d28\u5305\u4ec0\u4e48\u7684\u6dfb\u52a0\u65b0\u6750\u8d28\u8fdb\u6765\uff0c\u53ea\u8981\u8d44\u6e90\u76ee\u5f55\u548c\u672c\u6a21\u7ec4\u8d34\u56fe\u5728\u540c\u4e00\u4e2a\u5730\u65b9\u5c31\u884c\uff01\u53ea\u8981\u4e0d\u91cd\u540d\u5c31\u80fd\u76f4\u63a5\u5f15\u7528\u5230\uff01\uff08\u6709\u4eba\u95ee\u90a3\u91cd\u540d\u600e\u4e48\u4e86\uff1f\u989d\uff0c\u91cd\u540d\u90a3\u4e0d\u662f\u66ff\u6362\u6750\u8d28\u561b...\uff09"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"\u6ce8\u610f\uff1a\u7531\u4e8e\u4f18\u5316\u6307\u9488\u89c6\u89c9\uff0c\u6240\u6709\u7ee7\u627f\u81ea PartEntity \u7684\u5b9e\u4f53\u90e8\u5206\u4e0d\u4f1a\u88ab\u6307\u793a\uff0c\u6bd4\u5982\u672b\u5f71\u9f99\u7684\u7fc5\u8180\u548c\u5c3e\u5df4\u3002"})}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"Tip\uff1a\u8ffd\u8e2a\u6307\u793a\u7b2c...\u603b\u4e4b\u662f\u5f88\u591a\u4e1c\u897f\u5df2\u7ecf\u5b8c\u6210\uff0c\u5df2\u7ecf\u5728\u6c47\u6d41\u6765\u4e16\u6295\u4ea7\uff0c\u4f46\u914d\u7f6e\u548c\u4f7f\u7528\u6216\u8bb8\u8fd8\u6709\u4e0d\u5b8c\u5584\u3001\u4e0d\u5408\u7406\u7684\u5730\u65b9\uff0c\u6b22\u8fce\u53cd\u9988\uff01"})}),"\n",(0,i.jsxs)(e.p,{children:["\u5907\u6ce8\uff1a\u6b22\u8fce\u6765 ",(0,i.jsx)(e.strong,{children:"Ti works \u7684 QQ \u7fa4 953398884"}),"\u6216 ",(0,i.jsx)(e.strong,{children:"\u6c47\u6d41\u6765\u4e16 QQ \u7fa4"})," \u652f\u6301\u4f5c\u8005\u3001\u52a9\u529b\u4f5c\u8005\u3002\uff08\u6211\u6253\u7b97\u5f00\u4e2a\u8d5e\u52a9\u53f7\u4ec0\u4e48\u7684...\u4e0d\u8fc7\u4e5f\u662f\u597d\u4e45\u540e\u7684\u4e8b\u60c5\u4e86\uff09"]}),"\n",(0,i.jsx)(e.h2,{id:"\u7ed9\u6a21\u7ec4\u5f00\u53d1\u8005\u770b\u7684\u90e8\u5206",children:"\u7ed9\u6a21\u7ec4\u5f00\u53d1\u8005\u770b\u7684\u90e8\u5206"}),"\n",(0,i.jsx)(e.p,{children:"\u95f2\u8bdd\u5c11\u53d9\uff0c\u76f4\u63a5\u6765\u5427\uff1a"}),"\n",(0,i.jsxs)(e.p,{children:["\u9996\u5148\uff0c\u58f0\u660e\u4e00\u4e0b\uff0c\u4f60\u80fd\u8bbf\u95ee\u7684\u8fd9\u4e2a\u6307\u9488\u7ba1\u7406\u5668\u540d\u53eb\u3002\u5728\u8fd9\u91cc",(0,i.jsx)(e.strong,{children:"\u4e0d\u80fd\u8bbf\u95ee\u5230\u73a9\u5bb6\u81ea\u5b9a\u4e49\u6307\u9488"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u63a5\u4e0b\u6765\uff0c\u4f5c\u4e3a\u5f00\u53d1\u7684\u4e00\u90e8\u5206\uff0c\u600e\u4e48\u4f7f\u7528\uff1f"}),"\n",(0,i.jsx)(e.p,{children:"\u6211\u5728API\u91cc\u585e\u4e86\u4e00\u4e2a\u4f7f\u7528\u8303\u4f8b\uff0c\u8fd9\u91cc\u518d\u5c55\u793a\u4e00\u904d\uff1a"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-java",children:'@EventBusSubscriber(Dist.CLIENT)\r\n/** An example adding death point tag to world. */\r\npublic class TestAdd1 {\r\n private static final ComponentBuilder.BuilderResult posTo0 = new ComponentBuilder()\r\n .setComponentType(ComponentBuilder.ComponentType.DIRECT)\r\n .setIcon1(Items.DIAMOND.getDefaultInstance())\r\n .setIcon1Pattern("rainbow:2")\r\n .defineRescale(scale -> (float) (1F + Math.min(scale / 2.2, 1f) * Math.min(scale / 2.2, 1f)))\r\n .setSmoothMove(true)\r\n .build();\r\n\r\n private static Vec3 pos;\r\n\r\n @SubscribeEvent\r\n public static void onScreenOpen(ScreenEvent.Opening event) {\r\n if (event.getScreen() instanceof DeathScreen) {\r\n Player player = Minecraft.getInstance().player;\r\n if (player != null) {\r\n pos = player.position();\r\n }\r\n }\r\n }\r\n @SubscribeEvent\r\n public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) {\r\n if (!event.isEndConquered() && pos != null) {\r\n WorldSingletonTracker tracker = TrackersMonitor.getTracker();\r\n if (tracker != null) {\r\n StaticComponent component = tracker.addStaticPosComponent(TheTrackers.MOD_ID, "death point", posTo0, true);\r\n component.posUpdater(vec3 -> {\r\n if (vec3.distanceTo(pos) < 5) component.close();\r\n return pos;\r\n });\r\n }\r\n }\r\n\r\n }\r\n}\n'})}),"\n",(0,i.jsxs)(e.p,{children:["\u5982\u4e0a\uff0c\u901a\u8fc7\u8fd9\u4e2a\u529f\u80fd\u4fbf\u80fd\u7b80\u5355\u7684\u5b9e\u73b0\u4e00\u4e2a",(0,i.jsx)(e.strong,{children:"\u73a9\u5bb6\u7684\u6b7b\u4ea1\u5750\u6807\u6307\u9488"}),"\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u6240\u9700\u8981\u7684\u4ec5\u4ec5\u662f\u63d0\u524d\u5b58\u597d\u4e00\u4e2a\u6307\u9488\u6837\u5f0f\u7ed3\u679c",(0,i.jsx)(e.code,{children:"BuilderResult"}),"\uff0c\u7136\u540e\u5b9e\u9645\u4f7f\u7528\u65f6\u901a\u8fc7",(0,i.jsx)(e.code,{children:"TrackersMonitor.getTracker()"}),"\u62ff\u5230\u6a21\u7ec4\u7279\u4f9b\u7684\u6307\u9488\u7ba1\u7406\u5668\uff0c\u6700\u540e\u4f7f\u7528\u5176\u6240\u643a\u5e26\u7684add\u4e4b\u7c7b\u7684\u65b9\u6cd5\u6ce8\u518c\u8fdb\u53bb\uff0c\u8fd9\u4e2a\u6307\u9488\u5c31\u4f1a\u51fa\u73b0\u5728\u5c4f\u5e55\u4e0a\u4e86\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u4f60\u8fd8\u53ef\u4ee5\u6309\u5982\u4e0a\u6240\u793a\u7684\u8868\u8fbe\u5f0f\u5b8c\u6210\u6539\u53d8\u6307\u9488\u76ee\u6807\u4e4b\u7c7b\u7684\u5de5\u4f5c\uff0c\u53ea\u8981\u4f60\u8fd8\u6301\u6709\u6ce8\u518c\u8fd4\u56de\u7684Component\u5c31\u80fd\u505a\u5230\u3002"}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.code,{children:"WorldSingletonTracker"}),"\u63d0\u4f9b\u7684\u751f\u547d\u5468\u671f\u7ba1\u7406\u975e\u5e38\u7b80\u964b\uff0c\u4ec5\u4ec5\u662f\u6e05\u7406\u6389\u5df2\u7ecf\u8c03\u7528",(0,i.jsx)(e.code,{children:"close()"}),"\u7684\u6307\u9488\uff0c\u56e0\u6b64\u4f60\u5e94\u5f53\u81ea\u884c\u5b9a\u4e49\u6307\u9488\u7684\u751f\u547d\u5468\u671f\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4f60\u5e76\u4e0d\u9700\u8981\u9891\u7e41\u521b\u5efa\u6216\u5173\u95ed\u6307\u9488\u6765\u5b9e\u73b0\u6307\u9488\u7684\u6682\u65f6\u9690\u85cf\uff0c\u53ef\u4ee5\u901a\u8fc7",(0,i.jsx)(e.code,{children:"component.setVisible(boolean)"}),"\u66f4\u65b9\u4fbf\u5730\u5b9e\u73b0\uff0c\u8fd9\u6837\u5f00\u9500\u4e5f\u5c11\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u6ce8\u518c\u67d0\u751f\u7269\u7684\u6307\u9488\u65f6\uff0c\u4f7f\u7528tracker\u4e2d\u5e26\u6709",(0,i.jsx)(e.code,{children:"dynamic"}),"\u5b57\u6837\u7684\u65b9\u6cd5\u3002\u4f60\u9700\u8981\u63d0\u4f9b\u4e00\u4e2aUUID\u8868\u793a\u8be5\u751f\u7269\uff0c\u540c\u65f6\u4f60\u83b7\u5f97\u7684\u8fd9\u4e2a\u6307\u9488\u4e3a",(0,i.jsx)(e.code,{children:"SimpleComponent"}),"\uff0c\u4e0d\u652f\u6301\u81ea\u5b9a\u4e49\u6539\u53d8\u5750\u6807\u3002"]}),"\n",(0,i.jsxs)(e.p,{children:["\u4e3a\u4e86\u51cf\u5c11\u8de8\u7c7b\u4ee3\u7801\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7modid\u7b49\u6ce8\u518c\u4fe1\u606f\u641c\u7d22\u67d0\u4e2a\u6307\u9488\uff0c\u4ee5\u91cd\u65b0\u83b7\u5f97\u5b83\u3002\u53ea\u4e0d\u8fc7\u8fd9\u4e2a\u83b7\u5f97\u7684\u662f",(0,i.jsx)(e.code,{children:"SimpleComponent"}),"\u3002"]}),"\n",(0,i.jsx)(e.p,{children:"\u5269\u4e0b\u6240\u6709\u5177\u4f53\u65b9\u6cd5\u6240\u5177\u6709\u7684\u529f\u80fd\u6211\u90fd\u5199\u5728JavaDoc\u4e2d\u4e86\u3002"}),"\n",(0,i.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u5c06\u6765\u7684\u8ba1\u5212\uff1a"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"\u72ec\u7acb\u6c34\u5e73\u7ecf\u5ea6\u8f74+\u6307\u793a"}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"\u6dfb\u52a0\u81ea\u5b9a\u4e49\u5feb\u6377\u952e\u5f00\u5173\u6307\u9488"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"\u652f\u6301\u4f7f\u7528\u65c5\u884c\u5730\u56fe\u751f\u7269\u56fe\u6807\u7684\u8ba1\u5212\u5df2\u56e0\u5176ARR\u534f\u8bae\u7684\u9650\u5236\u800c\u53d6\u6d88\u3002"})]})}function o(n={}){const{wrapper:e}={...(0,c.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(h,{...n})}):h(n)}},8685:(n,e,r)=>{r.d(e,{A:()=>s});const s="data:image/png;base64,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"}}]);
\ No newline at end of file
diff --git a/docs/assets/js/common.0c5200a7.js b/docs/assets/js/common.0c5200a7.js
deleted file mode 100644
index 9c1fc50..0000000
--- a/docs/assets/js/common.0c5200a7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[2076],{53:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(8675);const i=function(e){return(0,r.A)(e,4)}},200:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(2049),i=n(6586),s=n(6632);var a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g;const c=function(e){var t=(0,s.A)(e,function(e){return 500===n.size&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,function(e,n,r,i){t.push(r?i.replace(o,"$1"):n||e)}),t});var l=n(8894);const u=function(e,t){return(0,r.A)(e)?e:(0,i.A)(e,t)?[e]:c((0,l.A)(e))}},418:(e,t,n)=>{n.d(t,{Bd:()=>h,P3:()=>x,PV:()=>E,Rp:()=>A,S:()=>I,SS:()=>g,U5:()=>v,Uz:()=>k,Xq:()=>R,YV:()=>l,eb:()=>f,g4:()=>d,qO:()=>p});var r=n(9183),i=n(2151),s=n(2479),a=n(9683),o=n(6373),c=n(2806);function l(e,t){const n=new Set,r=function(e){return e.rules.find(e=>i.s7(e)&&e.entry)}(e);if(!r)return new Set(e.rules);const s=[r].concat(function(e){return e.rules.filter(e=>i.rE(e)&&e.hidden)}(e));for(const i of s)u(i,n,t);const a=new Set;for(const o of e.rules)(n.has(o.name)||i.rE(o)&&o.hidden)&&a.add(o);return a}function u(e,t,n){t.add(e.name),(0,a.Uo)(e).forEach(e=>{if(i.$g(e)||n&&i.lF(e)){const r=e.rule.ref;r&&!t.has(r.name)&&u(r,t,n)}})}function d(e){if(e.terminal)return e.terminal;if(e.type.ref){const t=v(e.type.ref);return null==t?void 0:t.terminal}}function f(e){return e.hidden&&!(0,c.Yv)(I(e))}function h(e,t){return e&&t?m(e,t,e.astNode,!0):[]}function p(e,t,n){if(!e||!t)return;const r=m(e,t,e.astNode,!0);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}function m(e,t,n,r){if(!r){const n=(0,a.XG)(e.grammarSource,i.wh);if(n&&n.feature===t)return[e]}return(0,s.mD)(e)&&e.astNode===n?e.content.flatMap(e=>m(e,t,n,!1)):[]}function g(e,t,n){if(!e)return;const r=y(e,t,null==e?void 0:e.astNode);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}function y(e,t,n){if(e.astNode!==n)return[];if(i.wb(e.grammarSource)&&e.grammarSource.value===t)return[e];const r=(0,o.NS)(e).iterator();let s;const a=[];do{if(s=r.next(),!s.done){const e=s.value;e.astNode===n?i.wb(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):r.prune()}}while(!s.done);return a}function A(e){var t;const n=e.astNode;for(;n===(null===(t=e.container)||void 0===t?void 0:t.astNode);){const t=(0,a.XG)(e.grammarSource,i.wh);if(t)return t;e=e.container}}function v(e){let t=e;return i.SP(t)&&(i.ve(t.$container)?t=t.$container.$container:i.s7(t.$container)?t=t.$container:(0,r.d)(t.$container)),T(e,t,new Map)}function T(e,t,n){var r;function s(t,r){let s;return(0,a.XG)(t,i.wh)||(s=T(r,r,n)),n.set(e,s),s}if(n.has(e))return n.get(e);n.set(e,void 0);for(const o of(0,a.Uo)(t)){if(i.wh(o)&&"name"===o.feature.toLowerCase())return n.set(e,o),o;if(i.$g(o)&&i.s7(o.rule.ref))return s(o,o.rule.ref);if(i.D8(o)&&(null===(r=o.typeRef)||void 0===r?void 0:r.ref))return s(o,o.typeRef.ref)}}function R(e){return $(e,new Set)}function $(e,t){if(t.has(e))return!0;t.add(e);for(const n of(0,a.Uo)(e))if(i.$g(n)){if(!n.rule.ref)return!1;if(i.s7(n.rule.ref)&&!$(n.rule.ref,t))return!1}else{if(i.wh(n))return!1;if(i.ve(n))return!1}return Boolean(e.definition)}function E(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){const t=e.returnType.ref;if(t){if(i.s7(t))return t.name;if(i.S2(t)||i.Xj(t))return t.name}}}function k(e){var t;if(i.s7(e))return R(e)?e.name:null!==(t=E(e))&&void 0!==t?t:e.name;if(i.S2(e)||i.Xj(e)||i.fG(e))return e.name;if(i.ve(e)){const t=function(e){var t;if(e.inferredType)return e.inferredType.name;if(null===(t=e.type)||void 0===t?void 0:t.ref)return k(e.type.ref);return}(e);if(t)return t}else if(i.SP(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function x(e){var t,n,r;return i.rE(e)?null!==(n=null===(t=e.type)||void 0===t?void 0:t.name)&&void 0!==n?n:"string":null!==(r=E(e))&&void 0!==r?r:e.name}function I(e){const t={s:!1,i:!1,u:!1},n=w(e.definition,t),r=Object.entries(t).filter(([,e])=>e).map(([e])=>e).join("");return new RegExp(n,r)}const S=/[\s\S]/.source;function w(e,t){if(i.Fy(e))return C((a=e).elements.map(e=>w(e)).join("|"),{cardinality:a.cardinality,lookahead:a.lookahead});if(i.O4(e))return C((s=e).elements.map(e=>w(e)).join(""),{cardinality:s.cardinality,lookahead:s.lookahead});if(i.Bg(e))return function(e){if(e.right)return C(`[${N(e.left)}-${N(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1});return C(N(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}(e);if(i.lF(e)){const t=e.rule.ref;if(!t)throw new Error("Missing rule reference.");return C(w(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}if(i.GL(e))return C(`(?!${w((r=e).terminal)})${S}*?`,{cardinality:r.cardinality,lookahead:r.lookahead});if(i.Mz(e))return C(`${S}*?${w((n=e).terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead});if(i.vd(e)){const n=e.regex.lastIndexOf("/"),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),C(r,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}if(i.z2(e))return C(S,{cardinality:e.cardinality,lookahead:e.lookahead});throw new Error(`Invalid terminal element: ${null==e?void 0:e.$type}`);var n,r,s,a}function N(e){return(0,c.Nt)(e.value)}function C(e,t){var n;return(!1!==t.wrap||t.lookahead)&&(e=`(${null!==(n=t.lookahead)&&void 0!==n?n:""}${e})`),t.cardinality?`${e}${t.cardinality}`:e}},487:(e,t,n)=>{function r(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}n.d(t,{S:()=>r}),(0,n(1750).K2)(r,"populateCommonDb")},805:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e){return function(t){return null==t?void 0:t[e]}}},818:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(5707);const i=function(e){return e!=e};const s=function(e,t,n){for(var r=n-1,i=e.length;++r{n.d(t,{A:()=>i});var r=n(1882);const i=function(e){if("string"==typeof e||(0,r.A)(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},966:(e,t)=>{function n(e){return"string"==typeof e||e instanceof String}function r(e){return Array.isArray(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0,t.boolean=function(e){return!0===e||!1===e},t.string=n,t.number=function(e){return"number"==typeof e||e instanceof Number},t.error=function(e){return e instanceof Error},t.func=function(e){return"function"==typeof e},t.array=r,t.stringArray=function(e){return r(e)&&e.every(e=>n(e))}},1366:(e,t,n)=>{n.d(t,{v:()=>l});var r=n(8198),i=n(4298),s=n(9364),a=n(8913),o=class extends r.mR{static{(0,r.K2)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},c={parser:{TokenBuilder:(0,r.K2)(()=>new o,"TokenBuilder"),ValueConverter:(0,r.K2)(()=>new r.Tm,"ValueConverter")}};function l(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr),n=(0,s.WQ)((0,a.t)({shared:t}),r.e5,c);return t.ServiceRegistry.register(n),{shared:t,Info:n}}(0,r.K2)(l,"createInfoServices")},1719:(e,t,n)=>{n.d(t,{B5:()=>a,Rf:()=>o,Td:()=>c,Vj:()=>l,fq:()=>r,iD:()=>u});class r{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){const e=this.iterator();return Boolean(e.next().done)}count(){const e=this.iterator();let t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){const e=[],t=this.iterator();let n;do{n=t.next(),void 0!==n.value&&e.push(n.value)}while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){const n=this.map(n=>[e?e(n):n,t?t(n):n]);return new Map(n)}toString(){return this.join()}concat(e){return new r(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do{if(t=this.nextFn(e.first),!t.done)return t}while(!t.done);e.firstDone=!0}do{if(t=e.iterator.next(),!t.done)return t}while(!t.done);return o})}join(e=","){const t=this.iterator();let n,r="",s=!1;do{n=t.next(),n.done||(s&&(r+=e),r+=i(n.value)),s=!0}while(!n.done);return r}indexOf(e,t=0){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(e){return new r(this.startFn,t=>{const{done:n,value:r}=this.nextFn(t);return n?o:{done:!1,value:e(r)}})}filter(e){return new r(this.startFn,t=>{let n;do{if(n=this.nextFn(t),!n.done&&e(n.value))return n}while(!n.done);return o})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){const n=this.iterator();let r=t,i=n.next();for(;!i.done;)r=void 0===r?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const r=e.next();if(r.done)return n;const i=this.recursiveReduce(e,t,n);return void 0===i?r.value:t(i,r.value)}find(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new r(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}const{done:n,value:r}=this.nextFn(t.this);if(!n){const n=e(r);if(!s(n))return{done:!1,value:n};t.iterator=n[Symbol.iterator]()}}while(t.iterator);return o})}flat(e){if(void 0===e&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new r(()=>({this:t.startFn()}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}const{done:n,value:r}=t.nextFn(e.this);if(!n){if(!s(r))return{done:!1,value:r};e.iterator=r[Symbol.iterator]()}}while(e.iterator);return o})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new r(()=>{const t=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?o:this.nextFn(t.state)))}distinct(e){return new r(()=>({set:new Set,internalState:this.startFn()}),t=>{let n;do{if(n=this.nextFn(t.internalState),!n.done){const r=e?e(n.value):n.value;if(!t.set.has(r))return t.set.add(r),n}}while(!n.done);return o})}exclude(e,t){const n=new Set;for(const r of e){const e=t?t(r):r;n.add(e)}return this.filter(e=>{const r=t?t(e):e;return!n.has(r)})}}function i(e){return"string"==typeof e?e:void 0===e?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function s(e){return!!e&&"function"==typeof e[Symbol.iterator]}const a=new r(()=>{},()=>o),o=Object.freeze({done:!0,value:void 0});function c(...e){if(1===e.length){const t=e[0];if(t instanceof r)return t;if(s(t))return new r(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new r(()=>({index:0}),e=>e.index1?new r(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex({iterators:(null==n?void 0:n.includeRoot)?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){const n=e.iterators[e.iterators.length-1].next();if(!n.done)return e.iterators.push(t(n.value)[Symbol.iterator]()),n;e.iterators.pop()}return o})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var u;!function(e){e.sum=function(e){return e.reduce((e,t)=>e+t,0)},e.product=function(e){return e.reduce((e,t)=>e*t,0)},e.min=function(e){return e.reduce((e,t)=>Math.min(e,t))},e.max=function(e){return e.reduce((e,t)=>Math.max(e,t))}}(u||(u={}))},1790:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(6240);const i=function(e,t){var n=[];return(0,r.A)(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}},1882:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(8496),i=n(3098);const s=function(e){return"symbol"==typeof e||(0,i.A)(e)&&"[object Symbol]"==(0,r.A)(e)}},1945:(e,t,n)=>{n.d(t,{Q:()=>l});var r=n(9637),i=n(2151),s=n(9683),a=n(418),o=n(2806),c=n(1719);class l{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=(0,c.Td)((0,a.YV)(e,!1)),r=this.buildTerminalTokens(n),i=this.buildKeywordTokens(n,r,t);return r.forEach(e=>{const t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&(0,o.Yv)(t)?i.unshift(e):i.push(e)}),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(i.rE).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){const t=(0,a.S)(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:n};return"function"==typeof n&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=(0,o.Yv)(t)?r.JG.SKIPPED:"hidden"),i}requiresCustomPattern(e){return!(!e.flags.includes("u")&&!e.flags.includes("s"))||!(!e.source.includes("?<=")&&!e.source.includes("?{t.lastIndex=n;return t.exec(e)}}buildKeywordTokens(e,t,n){return e.filter(i.s7).flatMap(e=>(0,s.Uo)(e).filter(i.wb)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,Boolean(null==n?void 0:n.caseInsensitive)))}buildKeywordToken(e,t,n){const r=this.buildKeywordPattern(e,n),i={name:e.value,PATTERN:r,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof r&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?new RegExp((0,o.Ao)(e.value)):e.value}findLongerAlt(e,t){return t.reduce((t,n)=>{const r=null==n?void 0:n.PATTERN;return(null==r?void 0:r.source)&&(0,o.PC)("^"+r.source+"$",e.value)&&t.push(n),t},[])}}},2062:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(9471);const i=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this};const s=function(e){return this.__data__.has(e)};function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r.A;++t{n.d(t,{$g:()=>he,Bg:()=>J,Ct:()=>S,Cz:()=>p,D8:()=>U,FO:()=>re,Fy:()=>me,GL:()=>le,IZ:()=>se,Mz:()=>Ee,O4:()=>ye,QX:()=>Ie,RP:()=>A,S2:()=>k,SP:()=>$,TF:()=>b,Tu:()=>g,Xj:()=>B,_c:()=>te,cY:()=>Re,fG:()=>M,jp:()=>X,lF:()=>ve,r1:()=>u,rE:()=>K,s7:()=>O,vd:()=>de,ve:()=>z,wb:()=>oe,wh:()=>Q,z2:()=>xe});var r=n(2479);const i="AbstractRule";const s="AbstractType";const a="Condition";const o="TypeDefinition";const c="ValueLiteral";const l="AbstractElement";function u(e){return Se.isInstance(e,l)}const d="ArrayLiteral";const f="ArrayType";const h="BooleanLiteral";function p(e){return Se.isInstance(e,h)}const m="Conjunction";function g(e){return Se.isInstance(e,m)}const y="Disjunction";function A(e){return Se.isInstance(e,y)}const v="Grammar";const T="GrammarImport";const R="InferredType";function $(e){return Se.isInstance(e,R)}const E="Interface";function k(e){return Se.isInstance(e,E)}const x="NamedArgument";const I="Negation";function S(e){return Se.isInstance(e,I)}const w="NumberLiteral";const N="Parameter";const C="ParameterReference";function b(e){return Se.isInstance(e,C)}const L="ParserRule";function O(e){return Se.isInstance(e,L)}const _="ReferenceType";const P="ReturnType";function M(e){return Se.isInstance(e,P)}const D="SimpleType";function U(e){return Se.isInstance(e,D)}const F="StringLiteral";const G="TerminalRule";function K(e){return Se.isInstance(e,G)}const j="Type";function B(e){return Se.isInstance(e,j)}const V="TypeAttribute";const H="UnionType";const W="Action";function z(e){return Se.isInstance(e,W)}const Y="Alternatives";function X(e){return Se.isInstance(e,Y)}const q="Assignment";function Q(e){return Se.isInstance(e,q)}const Z="CharacterRange";function J(e){return Se.isInstance(e,Z)}const ee="CrossReference";function te(e){return Se.isInstance(e,ee)}const ne="EndOfFile";function re(e){return Se.isInstance(e,ne)}const ie="Group";function se(e){return Se.isInstance(e,ie)}const ae="Keyword";function oe(e){return Se.isInstance(e,ae)}const ce="NegatedToken";function le(e){return Se.isInstance(e,ce)}const ue="RegexToken";function de(e){return Se.isInstance(e,ue)}const fe="RuleCall";function he(e){return Se.isInstance(e,fe)}const pe="TerminalAlternatives";function me(e){return Se.isInstance(e,pe)}const ge="TerminalGroup";function ye(e){return Se.isInstance(e,ge)}const Ae="TerminalRuleCall";function ve(e){return Se.isInstance(e,Ae)}const Te="UnorderedGroup";function Re(e){return Se.isInstance(e,Te)}const $e="UntilToken";function Ee(e){return Se.isInstance(e,$e)}const ke="Wildcard";function xe(e){return Se.isInstance(e,ke)}class Ie extends r.kD{getAllTypes(){return[l,i,s,W,Y,d,f,q,h,Z,a,m,ee,y,ne,v,T,ie,R,E,ae,x,ce,I,w,N,C,L,_,ue,P,fe,D,F,pe,ge,G,Ae,j,V,o,H,Te,$e,c,ke]}computeIsSubtype(e,t){switch(e){case W:case Y:case q:case Z:case ee:case ne:case ie:case ae:case ce:case ue:case fe:case pe:case ge:case Ae:case Te:case $e:case ke:return this.isSubtype(l,t);case d:case w:case F:return this.isSubtype(c,t);case f:case _:case D:case H:return this.isSubtype(o,t);case h:return this.isSubtype(a,t)||this.isSubtype(c,t);case m:case y:case I:case C:return this.isSubtype(a,t);case R:case E:case j:return this.isSubtype(s,t);case L:return this.isSubtype(i,t)||this.isSubtype(s,t);case G:return this.isSubtype(i,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return s;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return i;case"Grammar:usedGrammars":return v;case"NamedArgument:parameter":case"ParameterReference:parameter":return N;case"TerminalRuleCall:rule":return G;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case l:return{name:l,properties:[{name:"cardinality"},{name:"lookahead"}]};case d:return{name:d,properties:[{name:"elements",defaultValue:[]}]};case f:return{name:f,properties:[{name:"elementType"}]};case h:return{name:h,properties:[{name:"true",defaultValue:!1}]};case m:return{name:m,properties:[{name:"left"},{name:"right"}]};case y:return{name:y,properties:[{name:"left"},{name:"right"}]};case v:return{name:v,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case T:return{name:T,properties:[{name:"path"}]};case R:return{name:R,properties:[{name:"name"}]};case E:return{name:E,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case x:return{name:x,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case I:return{name:I,properties:[{name:"value"}]};case w:return{name:w,properties:[{name:"value"}]};case N:return{name:N,properties:[{name:"name"}]};case C:return{name:C,properties:[{name:"parameter"}]};case L:return{name:L,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case _:return{name:_,properties:[{name:"referenceType"}]};case P:return{name:P,properties:[{name:"name"}]};case D:return{name:D,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case F:return{name:F,properties:[{name:"value"}]};case G:return{name:G,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case j:return{name:j,properties:[{name:"name"},{name:"type"}]};case V:return{name:V,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case H:return{name:H,properties:[{name:"types",defaultValue:[]}]};case W:return{name:W,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Y:return{name:Y,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case q:return{name:q,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Z:return{name:Z,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case ee:return{name:ee,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case ne:return{name:ne,properties:[{name:"cardinality"},{name:"lookahead"}]};case ie:return{name:ie,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case ae:return{name:ae,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case ce:return{name:ce,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case ue:return{name:ue,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case fe:return{name:fe,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case pe:return{name:pe,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ge:return{name:ge,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Ae:return{name:Ae,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Te:return{name:Te,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $e:return{name:$e,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case ke:return{name:ke,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const Se=new Ie},2302:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(){}},2479:(e,t,n)=>{function r(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function i(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}function s(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name&&"string"==typeof e.type&&"string"==typeof e.path}function a(e){return"object"==typeof e&&null!==e&&r(e.container)&&i(e.reference)&&"string"==typeof e.message}n.d(t,{A_:()=>i,FC:()=>l,Nr:()=>s,Zl:()=>a,br:()=>u,kD:()=>o,mD:()=>c,ng:()=>r});class o{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return r(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});const r=n[t];if(void 0!==r)return r;{const r=this.computeIsSubtype(e,t);return n[t]=r,r}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const t=this.getAllTypes(),n=[];for(const r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}}function c(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function l(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function u(e){return c(e)&&"string"==typeof e.fullText}},2559:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(1882);const i=function(e,t,n){for(var i=-1,s=e.length;++i{n.d(t,{A:()=>s});var r=n(6240),i=n(8446);const s=function(e,t){var n=-1,s=(0,i.A)(e)?Array(e.length):[];return(0,r.A)(e,function(e,r,i){s[++n]=t(e,r,i)}),s}},2634:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,s=[];++n{n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=t.Event=void 0;const r=n(9590);var i;!function(e){const t={dispose(){}};e.None=function(){return t}}(i||(t.Event=i={}));class s{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let r=0,i=this._callbacks.length;r{this._callbacks||(this._callbacks=new s),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);const r={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),r.dispose=a._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(n)&&n.push(r),r}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}t.Emitter=a,a._noop=function(){}},2806:(e,t,n)=>{n.d(t,{Ao:()=>f,Nt:()=>d,PC:()=>h,TH:()=>i,Yv:()=>u,lU:()=>c});var r=n(5186);const i=/\r?\n/gm,s=new r.H;class a extends r.z{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(this.multiline||"\n"!==t||(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const e=d(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=Boolean("\n".match(n))}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){if("Group"===e.type){if(e.quantifier)return}super.visitChildren(e)}}const o=new a;function c(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),o.reset(e),o.visit(s.pattern(e)),o.multiline}catch(t){return!1}}const l="\f\n\r\t\v \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff".split("");function u(e){const t="string"==typeof e?new RegExp(e):e;return l.some(e=>t.test(e))}function d(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f(e){return Array.prototype.map.call(e,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:d(e)).join("")}function h(e,t){const n=function(e){"string"==typeof e&&(e=new RegExp(e));const t=e,n=e.source;let r=0;function i(){let e,s="";function a(e){s+=n.substr(r,e),r+=e}function o(e){s+="(?:"+n.substr(r,e)+"|$)",r+=e}for(;r",r)-r+1);break;default:o(2)}break;case"[":e=/\[(?:\\.|.)*?\]/g,e.lastIndex=r,e=e.exec(n)||[],o(e[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":e=/\{\d+,?\d*\}/g,e.lastIndex=r,e=e.exec(n),e?a(e[0].length):o(1);break;case"(":if("?"===n[r+1])switch(n[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":e=r,r+=3,i(),s+=n.substr(e,r-e);break;case"<":switch(n[r+3]){case"=":case"!":e=r,r+=4,i(),s+=n.substr(e,r-e);break;default:a(n.indexOf(">",r)-r+1),s+=i()+"|$)"}}else a(1),s+=i()+"|$)";break;case")":return++r,s;default:o(1)}return s}return new RegExp(i(),e.flags)}(e),r=t.match(n);return!!r&&r[0].length>0}},2852:(e,t,n)=>{n.d(t,{f:()=>l});var r=n(8198),i=n(4298),s=n(9364),a=n(8913),o=class extends r.mR{static{(0,r.K2)(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},c={parser:{TokenBuilder:(0,r.K2)(()=>new o,"TokenBuilder"),ValueConverter:(0,r.K2)(()=>new r.Tm,"ValueConverter")}};function l(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr),n=(0,s.WQ)((0,a.t)({shared:t}),r.YP,c);return t.ServiceRegistry.register(n),{shared:t,Radar:n}}(0,r.K2)(l,"createRadarServices")},3009:(e,t,n)=>{n.d(t,{S:()=>u});var r=n(8198),i=n(4298),s=n(9364),a=n(8913),o=class extends r.mR{static{(0,r.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},c=class extends r.dg{static{(0,r.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,n){return"ARCH_ICON"===e.name?t.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===e.name?t.replace(/["()]/g,""):"ARCH_TITLE"===e.name?t.replace(/[[\]]/g,"").trim():void 0}},l={parser:{TokenBuilder:(0,r.K2)(()=>new o,"TokenBuilder"),ValueConverter:(0,r.K2)(()=>new c,"ValueConverter")}};function u(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr),n=(0,s.WQ)((0,a.t)({shared:t}),r.jE,l);return t.ServiceRegistry.register(n),{shared:t,Architecture:n}}(0,r.K2)(u,"createArchitectureServices")},3068:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(4326),i=n(6984),s=n(6832),a=n(5615),o=Object.prototype,c=o.hasOwnProperty;const l=(0,r.A)(function(e,t){e=Object(e);var n=-1,r=t.length,l=r>2?t[2]:void 0;for(l&&(0,s.A)(t[0],t[1],l)&&(r=1);++n{n.d(t,{A:()=>r});const r=function(){return[]}},3588:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(6912),i=n(241),s=n(2274),a=n(2049),o=i.A?i.A.isConcatSpreadable:void 0;const c=function(e){return(0,a.A)(e)||(0,s.A)(e)||!!(o&&e&&e[o])};const l=function e(t,n,i,s,a){var o=-1,l=t.length;for(i||(i=c),a||(a=[]);++o0&&i(u)?n>1?e(u,n-1,i,s,a):(0,r.A)(a,u):s||(a[a.length]=u)}return a}},3736:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{n.d(t,{d:()=>h});var r=n(8198),i=n(4298),s=n(9364),a=n(8913),o=class extends r.mR{static{(0,r.K2)(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},c=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,l=class extends r.dg{static{(0,r.K2)(this,"TreemapValueConverter")}runCustomConverter(e,t,n){if("NUMBER2"===e.name)return parseFloat(t.replace(/,/g,""));if("SEPARATOR"===e.name)return t.substring(1,t.length-1);if("STRING2"===e.name)return t.substring(1,t.length-1);if("INDENTATION"===e.name)return t.length;if("ClassDef"===e.name){if("string"!=typeof t)return t;const e=c.exec(t);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}};function u(e){const t=e.validation.TreemapValidator,n=e.validation.ValidationRegistry;if(n){const e={Treemap:t.checkSingleRoot.bind(t)};n.register(e,t)}}(0,r.K2)(u,"registerValidationChecks");var d=class{static{(0,r.K2)(this,"TreemapValidator")}checkSingleRoot(e,t){let n;for(const r of e.TreemapRows)r.item&&(void 0===n&&void 0===r.indent?n=0:(void 0===r.indent||void 0!==n&&n>=parseInt(r.indent,10))&&t("error","Multiple root nodes are not allowed in a treemap.",{node:r,property:"item"}))}},f={parser:{TokenBuilder:(0,r.K2)(()=>new o,"TokenBuilder"),ValueConverter:(0,r.K2)(()=>new l,"ValueConverter")},validation:{TreemapValidator:(0,r.K2)(()=>new d,"TreemapValidator")}};function h(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr),n=(0,s.WQ)((0,a.t)({shared:t}),r.eV,f);return t.ServiceRegistry.register(n),u(n),{shared:t,Treemap:n}}(0,r.K2)(h,"createTreemapServices")},3831:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(6912),i=n(2049);const s=function(e,t,n){var s=t(e);return(0,i.A)(e)?s:(0,r.A)(s,n(e))}},3958:(e,t,n)=>{n.d(t,{A:()=>z});var r=n(1754),i=n(2062),s=n(3736),a=n(4099);const o=function(e,t,n,r,o,c){var l=1&n,u=e.length,d=t.length;if(u!=d&&!(l&&d>u))return!1;var f=c.get(e),h=c.get(t);if(f&&h)return f==t&&h==e;var p=-1,m=!0,g=2&n?new i.A:void 0;for(c.set(e,t),c.set(t,e);++p{n.d(t,{A:()=>a});var r=n(3831),i=n(5892),s=n(5615);const a=function(e){return(0,r.A)(e,s.A,i.A)}},4087:(e,t,n)=>{n.d(t,{b:()=>l});var r=n(8198),i=n(4298),s=n(9364),a=n(8913),o=class extends r.mR{static{(0,r.K2)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},c={parser:{TokenBuilder:(0,r.K2)(()=>new o,"TokenBuilder"),ValueConverter:(0,r.K2)(()=>new r.Tm,"ValueConverter")}};function l(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr),n=(0,s.WQ)((0,a.t)({shared:t}),r.eZ,c);return t.ServiceRegistry.register(n),{shared:t,GitGraph:n}}(0,r.K2)(l,"createGitGraphServices")},4092:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(2634),i=n(1790),s=n(3958),a=n(2049);const o=function(e,t){return((0,a.A)(e)?r.A:i.A)(e,(0,s.A)(t,3))}},4098:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(3588);const i=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},4099:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t){return e.has(t)}},4298:(e,t,n)=>{n.d(t,{D:()=>i});class r{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const i={fileSystemProvider:()=>new r}},4342:(e,t,n)=>{n.d(t,{A:()=>m});var r=/\s/;const i=function(e){for(var t=e.length;t--&&r.test(e.charAt(t)););return t};var s=/^\s+/;const a=function(e){return e?e.slice(0,i(e)+1).replace(s,""):e};var o=n(3149),c=n(1882),l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt;const h=function(e){if("number"==typeof e)return e;if((0,c.A)(e))return NaN;if((0,o.A)(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=(0,o.A)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=a(e);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?NaN:+e};var p=1/0;const m=function(e){return e?(e=h(e))===p||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},4540:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(1750),i=n(451),s=(0,r.K2)((e,t)=>{let n;"sandbox"===t&&(n=(0,i.Ltv)("#i"+e));return("sandbox"===t?(0,i.Ltv)(n.nodes()[0].contentDocument.body):(0,i.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")},4651:(e,t,n)=>{n.d(t,{o:()=>r});var r=(0,n(1750).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},4722:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(5572),i=n(3958),s=n(2568),a=n(2049);const o=function(e,t){return((0,a.A)(e)?r.A:s.A)(e,(0,i.A)(t,3))}},4792:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(2634),i=n(3153),s=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols;const o=a?function(e){return null==e?[]:(e=Object(e),(0,r.A)(a(e),function(t){return s.call(e,t)}))}:i.A},5033:(e,t,n)=>{n.d(t,{d:()=>a});var r,i=n(2151),s=n(418);class a{convert(e,t){let n=t.grammarSource;if((0,i._c)(n)&&(n=(0,s.g4)(n)),(0,i.$g)(n)){const r=n.rule.ref;if(!r)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(r,e,t)}return e}runConverter(e,t,n){var i;switch(e.name.toUpperCase()){case"INT":return r.convertInt(t);case"STRING":return r.convertString(t);case"ID":return r.convertID(t)}switch(null===(i=(0,s.P3)(e))||void 0===i?void 0:i.toLowerCase()){case"number":return r.convertNumber(t);case"boolean":return r.convertBoolean(t);case"bigint":return r.convertBigint(t);case"date":return r.convertDate(t);default:return t}}}!function(e){function t(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"0":return"\0";default:return e}}e.convertString=function(e){let n="";for(let r=1;r{n.d(t,{A:()=>l});var r=n(200),i=n(2274),s=n(2049),a=n(5353),o=n(5254),c=n(901);const l=function(e,t,n){for(var l=-1,u=(t=(0,r.A)(t,e)).length,d=!1;++l{function r(e){return e.charCodeAt(0)}function i(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function s(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t];e[t]=!0}function a(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function o(){throw Error("Internal Error - Should never get here!")}function c(e){return"Character"===e.type}n.d(t,{z:()=>g,H:()=>m});const l=[];for(let y=r("0");y<=r("9");y++)l.push(y);const u=[r("_")].concat(l);for(let y=r("a");y<=r("z");y++)u.push(y);for(let y=r("A");y<=r("Z");y++)u.push(y);const d=[r(" "),r("\f"),r("\n"),r("\r"),r("\t"),r("\v"),r("\t"),r("\xa0"),r("\u1680"),r("\u2000"),r("\u2001"),r("\u2002"),r("\u2003"),r("\u2004"),r("\u2005"),r("\u2006"),r("\u2007"),r("\u2008"),r("\u2009"),r("\u200a"),r("\u2028"),r("\u2029"),r("\u202f"),r("\u205f"),r("\u3000"),r("\ufeff")],f=/[0-9a-fA-F]/,h=/[0-9]/,p=/[1-9]/;class m{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":s(n,"global");break;case"i":s(n,"ignoreCase");break;case"m":s(n,"multiLine");break;case"u":s(n,"unicode");break;case"y":s(n,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}a(t);const n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return o()}quantifier(e=!1){let t;const n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;a(t)}if(!0!==e||void 0!==t)return a(t)?("?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),t):void 0}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),a(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):o()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[r("\n"),r("\r"),r("\u2028"),r("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=l;break;case"D":e=l,t=!0;break;case"s":e=d;break;case"S":e=d,t=!0;break;case"w":e=u;break;case"W":e=u,t=!0}return a(e)?{type:"Set",value:e,complement:t}:o()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=r("\f");break;case"n":e=r("\n");break;case"r":e=r("\r");break;case"t":e=r("\t");break;case"v":e=r("\v")}return a(e)?{type:"Character",value:e}:o()}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:r("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:r(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:r(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const t=this.classAtom();t.type;if(c(t)&&this.isRangeDash()){this.consumeChar("-");const n=this.classAtom();n.type;if(c(n)){if(n.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class g{visitChildren(e){for(const t in e){const n=e[t];e.hasOwnProperty(t)&&(void 0!==n.type?this.visit(n):Array.isArray(n)&&n.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}},5530:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(818);const i=function(e,t){return!!(null==e?0:e.length)&&(0,r.A)(e,t,0)>-1}},5572:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n{n.d(t,{A:()=>r});const r=function(e,t,n,r){for(var i=e.length,s=n+(r?1:-1);r?s--:++s{n.d(t,{A:()=>o});var r=n(6912),i=n(5647),s=n(4792),a=n(3153);const o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)(0,r.A)(t,(0,s.A)(e)),e=(0,i.A)(e);return t}:a.A},5937:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(2453),i=n(4886);const s=(e,t)=>r.A.lang.round(i.A.parse(e)[t])},6145:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(3958),i=n(8446),s=n(7422);const a=function(e){return function(t,n,a){var o=Object(t);if(!(0,i.A)(t)){var c=(0,r.A)(n,3);t=(0,s.A)(t),n=function(e){return c(o[e],e,o)}}var l=e(t,n,a);return l>-1?o[c?t[l]:l]:void 0}};var o=n(5707),c=n(8593),l=Math.max;const u=a(function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var s=null==n?0:(0,c.A)(n);return s<0&&(s=l(i+s,0)),(0,o.A)(e,(0,r.A)(t,3),s)})},6224:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t){return e{n.d(t,{A:()=>s});var r=n(9841),i=n(8446);const s=function(e,t){return function(n,r){if(null==n)return n;if(!(0,i.A)(n))return e(n,r);for(var s=n.length,a=t?s:-1,o=Object(n);(t?a--:++a{n.d(t,{A:()=>s});var r=n(200),i=n(901);const s=function(e,t){for(var n=0,s=(t=(0,r.A)(t,e)).length;null!=e&&n{n.d(t,{El:()=>d,NS:()=>a,SX:()=>l,pO:()=>o,r4:()=>u,v:()=>f,wf:()=>c});var r,i=n(2479),s=n(1719);function a(e){return new s.Vj(e,e=>(0,i.mD)(e)?e.content:[],{includeRoot:!0})}function o(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}function c(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function l(e){if(!e)return;const{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}function u(e,t){const n=function(e,t){if(e.end.linet.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return r.After;const n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,i=e.end.liner.After}!function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside",e[e.Outside=5]="Outside"}(r||(r={}));const d=/^[\w\p{L}]$/u;function f(e,t){if(e){const n=function(e,t=!0){for(;e.container;){const n=e.container;let r=n.content.indexOf(e);for(;r>0;){r--;const e=n.content[r];if(t||!e.hidden)return e}e=n}return}(e,!0);if(n&&h(n,t))return n;if((0,i.br)(e)){for(let n=e.content.findIndex(e=>!e.hidden)-1;n>=0;n--){const r=e.content[n];if(h(r,t))return r}}}}function h(e,t){return(0,i.FC)(e)&&t.includes(e.tokenType.name)}},6452:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(2559),i=n(6224),s=n(9008);const a=function(e){return e&&e.length?(0,r.A)(e,s.A,i.A):void 0}},6586:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(2049),i=n(1882),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;const o=function(e,t){if((0,r.A)(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!(0,i.A)(e))||(a.test(e)||!s.test(e)||null!=t&&e in Object(t))}},6666:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},6912:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=t.length,i=e.length;++n{n.d(t,{A:()=>a});var r=n(3607),i=n(1852),s=n(8446);const a=function(e){return(0,s.A)(e)?(0,r.A)(e):(0,i.A)(e)}},7608:(e,t,n)=>{var r;n.d(t,{A:()=>s,r:()=>i}),(()=>{var e={470:e=>{function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,s=-1,a=0,o=0;o<=e.length;++o){if(o2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",i=0):i=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),s=o,a=0;continue}}else if(2===r.length||1===r.length){r="",i=0,s=o,a=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(s+1,o):r=e.slice(s+1,o),i=o-s-1;s=o,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a;s>=0?a=arguments[s]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,i=47===a.charCodeAt(0))}return r=n(r,!i),i?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var i=1;il){if(47===n.charCodeAt(o+d))return n.slice(o+d+1);if(0===d)return n.slice(o+d)}else a>l&&(47===e.charCodeAt(i+d)?u=d:0===d&&(u=0));break}var f=e.charCodeAt(i+d);if(f!==n.charCodeAt(o+d))break;47===f&&(u=d)}var h="";for(d=i+u+1;d<=s;++d)d!==s&&47!==e.charCodeAt(d)||(0===h.length?h+="..":h+="/..");return h.length>0?h+n.slice(o+u):(o+=u,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,s=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!s){i=a;break}}else s=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,s=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var o=n.length-1,c=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(47===l){if(!a){i=r+1;break}}else-1===c&&(a=!1,c=r+1),o>=0&&(l===n.charCodeAt(o)?-1==--o&&(s=r):(o=-1,s=c))}return i===s?s=c:-1===s&&(s=e.length),e.slice(i,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){i=r+1;break}}else-1===s&&(a=!1,s=r+1);return-1===s?"":e.slice(i,s)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,s=!0,a=0,o=e.length-1;o>=0;--o){var c=e.charCodeAt(o);if(47!==c)-1===i&&(s=!1,i=o+1),46===c?-1===n?n=o:1!==a&&(a=1):-1!==n&&(a=-1);else if(!s){r=o+1;break}}return-1===n||-1===i||0===a||1===a&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),s=47===i;s?(n.root="/",r=1):r=0;for(var a=-1,o=0,c=-1,l=!0,u=e.length-1,d=0;u>=r;--u)if(47!==(i=e.charCodeAt(u)))-1===c&&(l=!1,c=u+1),46===i?-1===a?a=u:1!==d&&(d=1):-1!==a&&(d=-1);else if(!l){o=u+1;break}return-1===a||-1===c||0===d||1===d&&a===c-1&&a===o+1?-1!==c&&(n.base=n.name=0===o&&s?e.slice(1,c):e.slice(o,c)):(0===o&&s?(n.name=e.slice(1,a),n.base=e.slice(1,c)):(n.name=e.slice(o,a),n.base=e.slice(o,c)),n.ext=e.slice(a,c)),o>0?n.dir=e.slice(0,o-1):s&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{let e;if(n.r(i),n.d(i,{URI:()=>u,Utils:()=>k}),"object"==typeof process)e="win32"===process.platform;else if("object"==typeof navigator){let t=navigator.userAgent;e=t.indexOf("Windows")>=0}const t=/^\w[\w\d+.-]*$/,r=/^\//,s=/^\/\//;function a(e,n){if(!e.scheme&&n)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!r.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const o="",c="/",l=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class u{static isUri(e){return e instanceof u||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,n,r,i,s=!1){"object"==typeof e?(this.scheme=e.scheme||o,this.authority=e.authority||o,this.path=e.path||o,this.query=e.query||o,this.fragment=e.fragment||o):(this.scheme=function(e,t){return e||t?e:"file"}(e,s),this.authority=t||o,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==c&&(t=c+t):t=c}return t}(this.scheme,n||o),this.query=r||o,this.fragment=i||o,a(this,s))}get fsPath(){return g(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=o),void 0===n?n=this.authority:null===n&&(n=o),void 0===r?r=this.path:null===r&&(r=o),void 0===i?i=this.query:null===i&&(i=o),void 0===s?s=this.fragment:null===s&&(s=o),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&s===this.fragment?this:new f(t,n,r,i,s)}static parse(e,t=!1){const n=l.exec(e);return n?new f(n[2]||o,T(n[4]||o),T(n[5]||o),T(n[7]||o),T(n[9]||o),t):new f(o,o,o,o,o)}static file(t){let n=o;if(e&&(t=t.replace(/\\/g,c)),t[0]===c&&t[1]===c){const e=t.indexOf(c,2);-1===e?(n=t.substring(2),t=c):(n=t.substring(2,e),t=t.substring(e)||c)}return new f("file",n,t,o,o)}static from(e){const t=new f(e.scheme,e.authority,e.path,e.query,e.fragment);return a(t,!0),t}toString(e=!1){return y(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof u)return e;{const t=new f(e);return t._formatted=e.external,t._fsPath=e._sep===d?e.fsPath:null,t}}return e}}const d=e?1:void 0;class f extends u{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=g(this,!1)),this._fsPath}toString(e=!1){return e?y(this,!0):(this._formatted||(this._formatted=y(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=d),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const h={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function p(e,t,n){let r,i=-1;for(let s=0;s=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a||n&&91===a||n&&93===a||n&&58===a)-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),void 0!==r&&(r+=e.charAt(s));else{void 0===r&&(r=e.substr(0,s));const t=h[a];void 0!==t?(-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),r+=t):-1===i&&(i=s)}}return-1!==i&&(r+=encodeURIComponent(e.substring(i))),void 0!==r?r:e}function m(e){let t;for(let n=0;n1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?n?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(r=r.replace(/\//g,"\\")),r}function y(e,t){const n=t?m:p;let r="",{scheme:i,authority:s,path:a,query:o,fragment:l}=e;if(i&&(r+=i,r+=":"),(s||"file"===i)&&(r+=c,r+=c),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.lastIndexOf(":"),-1===e?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=":",r+=n(t.substr(e+1),!1,!0)),r+="@"}s=s.toLowerCase(),e=s.lastIndexOf(":"),-1===e?r+=n(s,!1,!0):(r+=n(s.substr(0,e),!1,!0),r+=s.substr(e))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){const e=a.charCodeAt(1);e>=65&&e<=90&&(a=`/${String.fromCharCode(e+32)}:${a.substr(3)}`)}else if(a.length>=2&&58===a.charCodeAt(1)){const e=a.charCodeAt(0);e>=65&&e<=90&&(a=`${String.fromCharCode(e+32)}:${a.substr(2)}`)}r+=n(a,!0,!1)}return o&&(r+="?",r+=n(o,!1,!1)),l&&(r+="#",r+=t?l:p(l,!1,!1)),r}function A(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+A(e.substr(3)):e}}const v=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function T(e){return e.match(v)?e.replace(v,e=>A(e)):e}var R=n(470);const $=R.posix||R,E="/";var k;!function(e){e.joinPath=function(e,...t){return e.with({path:$.join(e.path,...t)})},e.resolvePath=function(e,...t){let n=e.path,r=!1;n[0]!==E&&(n=E+n,r=!0);let i=$.resolve(n,...t);return r&&i[0]===E&&!e.authority&&(i=i.substring(1)),e.with({path:i})},e.dirname=function(e){if(0===e.path.length||e.path===E)return e;let t=$.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},e.basename=function(e){return $.basename(e.path)},e.extname=function(e){return $.extname(e.path)}}(k||(k={}))})(),r=i})();const{URI:i,Utils:s}=r},7809:(e,t,n)=>{n.d(t,{A:()=>r});const r=function(e,t,n){for(var r=-1,i=null==e?0:e.length;++r{n.d(t,{A:()=>o});var r=n(2641),i=n(6240),s=n(9922),a=n(2049);const o=function(e,t){return((0,a.A)(e)?r.A:i.A)(e,(0,s.A)(t))}},8139:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(3588),i=n(4722);const s=function(e,t){return(0,r.A)((0,i.A)(e,t),1)}},8198:(e,t,n)=>{n.d(t,{mR:()=>xe,dg:()=>Ee,jE:()=>Ae,Tm:()=>ke,eZ:()=>ve,e5:()=>me,sr:()=>pe,AM:()=>ge,KX:()=>ye,YP:()=>Te,eV:()=>Re,K2:()=>m});var r=n(2479),i=n(8913),s=n(9364),a=n(2151),o=n(4298),c=n(7608);const l={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},u={AstReflection:()=>new a.QX};function d(e){var t;const n=function(){const e=(0,s.WQ)((0,i.u)(o.D),u),t=(0,s.WQ)((0,i.t)({shared:e}),l);return e.ServiceRegistry.register(t),t}(),r=n.serializer.JsonSerializer.deserialize(e);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,c.r.parse(`memory://${null!==(t=r.name)&&void 0!==t?t:"grammar"}.langium`)),r}var f=n(5033),h=n(1945),p=Object.defineProperty,m=(e,t)=>p(e,"name",{value:t,configurable:!0}),g="Statement",y="Architecture";m(function(e){return J.isInstance(e,y)},"isArchitecture");var A="Axis",v="Branch";m(function(e){return J.isInstance(e,v)},"isBranch");var T="Checkout",R="CherryPicking",$="ClassDefStatement",E="Commit";m(function(e){return J.isInstance(e,E)},"isCommit");var k="Curve",x="Edge",I="Entry",S="GitGraph";m(function(e){return J.isInstance(e,S)},"isGitGraph");var w="Group",N="Info";m(function(e){return J.isInstance(e,N)},"isInfo");var C="Item",b="Junction",L="Merge";m(function(e){return J.isInstance(e,L)},"isMerge");var O="Option",_="Packet";m(function(e){return J.isInstance(e,_)},"isPacket");var P="PacketBlock";m(function(e){return J.isInstance(e,P)},"isPacketBlock");var M="Pie";m(function(e){return J.isInstance(e,M)},"isPie");var D="PieSection";m(function(e){return J.isInstance(e,D)},"isPieSection");var U="Radar",F="Service",G="Treemap";m(function(e){return J.isInstance(e,G)},"isTreemap");var K,j,B,V,H,W,z,Y="TreemapRow",X="Direction",q="Leaf",Q="Section",Z=class extends r.kD{static{m(this,"MermaidAstReflection")}getAllTypes(){return[y,A,v,T,R,$,E,k,X,x,I,S,w,N,C,b,q,L,O,_,P,M,D,U,Q,F,g,G,Y]}computeIsSubtype(e,t){switch(e){case v:case T:case R:case E:case L:return this.isSubtype(g,t);case X:return this.isSubtype(S,t);case q:case Q:return this.isSubtype(C,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if("Entry:axis"===t)return A;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case y:return{name:y,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case A:return{name:A,properties:[{name:"label"},{name:"name"}]};case v:return{name:v,properties:[{name:"name"},{name:"order"}]};case T:return{name:T,properties:[{name:"branch"}]};case R:return{name:R,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case $:return{name:$,properties:[{name:"className"},{name:"styleText"}]};case E:return{name:E,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case k:return{name:k,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case x:return{name:x,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case I:return{name:I,properties:[{name:"axis"},{name:"value"}]};case S:return{name:S,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case w:return{name:w,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case N:return{name:N,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case C:return{name:C,properties:[{name:"classSelector"},{name:"name"}]};case b:return{name:b,properties:[{name:"id"},{name:"in"}]};case L:return{name:L,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case O:return{name:O,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case _:return{name:_,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case P:return{name:P,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case M:return{name:M,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case D:return{name:D,properties:[{name:"label"},{name:"value"}]};case U:return{name:U,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case F:return{name:F,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case G:return{name:G,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Y:return{name:Y,properties:[{name:"indent"},{name:"item"}]};case X:return{name:X,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case q:return{name:q,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case Q:return{name:Q,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},J=new Z,ee=m(()=>K??(K=d('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"InfoGrammar"),te=m(()=>j??(j=d('{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PacketGrammar"),ne=m(()=>B??(B=d('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PieGrammar"),re=m(()=>V??(V=d('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),ie=m(()=>H??(H=d('{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"GitGraphGrammar"),se=m(()=>W??(W=d('{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}')),"RadarGrammar"),ae=m(()=>z??(z=d('{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}')),"TreemapGrammar"),oe={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ce={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},le={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ue={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},de={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},fe={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},he={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},pe={AstReflection:m(()=>new Z,"AstReflection")},me={Grammar:m(()=>ee(),"Grammar"),LanguageMetaData:m(()=>oe,"LanguageMetaData"),parser:{}},ge={Grammar:m(()=>te(),"Grammar"),LanguageMetaData:m(()=>ce,"LanguageMetaData"),parser:{}},ye={Grammar:m(()=>ne(),"Grammar"),LanguageMetaData:m(()=>le,"LanguageMetaData"),parser:{}},Ae={Grammar:m(()=>re(),"Grammar"),LanguageMetaData:m(()=>ue,"LanguageMetaData"),parser:{}},ve={Grammar:m(()=>ie(),"Grammar"),LanguageMetaData:m(()=>de,"LanguageMetaData"),parser:{}},Te={Grammar:m(()=>se(),"Grammar"),LanguageMetaData:m(()=>fe,"LanguageMetaData"),parser:{}},Re={Grammar:m(()=>ae(),"Grammar"),LanguageMetaData:m(()=>he,"LanguageMetaData"),parser:{}},$e={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},Ee=class extends f.d{static{m(this,"AbstractMermaidValueConverter")}runConverter(e,t,n){let r=this.runCommonConverter(e,t,n);return void 0===r&&(r=this.runCustomConverter(e,t,n)),void 0===r?super.runConverter(e,t,n):r}runCommonConverter(e,t,n){const r=$e[e.name];if(void 0===r)return;const i=r.exec(t);return null!==i?void 0!==i[1]?i[1].trim().replace(/[\t ]{2,}/gm," "):void 0!==i[2]?i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n"):void 0:void 0}},ke=class extends Ee{static{m(this,"CommonValueConverter")}runCustomConverter(e,t,n){}},xe=class extends h.Q{static{m(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,n){const r=super.buildKeywordTokens(e,t,n);return r.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=new RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),r}};(class extends xe{static{m(this,"CommonTokenBuilder")}})},8207:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(5572);const i=function(e,t){return(0,r.A)(t,function(t){return e[t]})};var s=n(7422);const a=function(e){return null==e?[]:i(e,(0,s.A)(e))}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var r=n(6540);const i={},s=r.createContext(i);function a(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:t},e.children)}},8585:(e,t,n)=>{n.d(t,{A:()=>a});var r=Object.prototype.hasOwnProperty;const i=function(e,t){return null!=e&&r.call(e,t)};var s=n(5054);const a=function(e,t){return null!=e&&(0,s.A)(e,t,i)}},8593:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(4342);const i=function(e){var t=(0,r.A)(e),n=t%1;return t==t?n?t-n:t:0}},8675:(e,t,n)=>{n.d(t,{A:()=>X});var r=n(1754),i=n(2641),s=n(2851),a=n(2031),o=n(7422);const c=function(e,t){return e&&(0,a.A)(t,(0,o.A)(t),e)};var l=n(5615);const u=function(e,t){return e&&(0,a.A)(t,(0,l.A)(t),e)};var d=n(154),f=n(9759),h=n(4792);const p=function(e,t){return(0,a.A)(e,(0,h.A)(e),t)};var m=n(5892);const g=function(e,t){return(0,a.A)(e,(0,m.A)(e),t)};var y=n(9042),A=n(3973),v=n(9779),T=Object.prototype.hasOwnProperty;const R=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&T.call(e,"index")&&(n.index=e.index,n.input=e.input),n};var $=n(565);const E=function(e,t){var n=t?(0,$.A)(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)};var k=/\w*$/;const x=function(e){var t=new e.constructor(e.source,k.exec(e));return t.lastIndex=e.lastIndex,t};var I=n(241),S=I.A?I.A.prototype:void 0,w=S?S.valueOf:void 0;const N=function(e){return w?Object(w.call(e)):{}};var C=n(1801);const b=function(e,t,n){var r=e.constructor;switch(t){case"[object ArrayBuffer]":return(0,$.A)(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return E(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,C.A)(e,n);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return x(e);case"[object Symbol]":return N(e)}};var L=n(8598),O=n(2049),_=n(9912),P=n(3098);const M=function(e){return(0,P.A)(e)&&"[object Map]"==(0,v.A)(e)};var D=n(2789),U=n(4841),F=U.A&&U.A.isMap;const G=F?(0,D.A)(F):M;var K=n(3149);const j=function(e){return(0,P.A)(e)&&"[object Set]"==(0,v.A)(e)};var B=U.A&&U.A.isSet;const V=B?(0,D.A)(B):j;var H="[object Arguments]",W="[object Function]",z="[object Object]",Y={};Y[H]=Y["[object Array]"]=Y["[object ArrayBuffer]"]=Y["[object DataView]"]=Y["[object Boolean]"]=Y["[object Date]"]=Y["[object Float32Array]"]=Y["[object Float64Array]"]=Y["[object Int8Array]"]=Y["[object Int16Array]"]=Y["[object Int32Array]"]=Y["[object Map]"]=Y["[object Number]"]=Y[z]=Y["[object RegExp]"]=Y["[object Set]"]=Y["[object String]"]=Y["[object Symbol]"]=Y["[object Uint8Array]"]=Y["[object Uint8ClampedArray]"]=Y["[object Uint16Array]"]=Y["[object Uint32Array]"]=!0,Y["[object Error]"]=Y[W]=Y["[object WeakMap]"]=!1;const X=function e(t,n,a,h,m,T){var $,E=1&n,k=2&n,x=4&n;if(a&&($=m?a(t,h,m,T):a(t)),void 0!==$)return $;if(!(0,K.A)(t))return t;var I=(0,O.A)(t);if(I){if($=R(t),!E)return(0,f.A)(t,$)}else{var S=(0,v.A)(t),w=S==W||"[object GeneratorFunction]"==S;if((0,_.A)(t))return(0,d.A)(t,E);if(S==z||S==H||w&&!m){if($=k||w?{}:(0,L.A)(t),!E)return k?g(t,u($,t)):p(t,c($,t))}else{if(!Y[S])return m?t:{};$=b(t,S,E)}}T||(T=new r.A);var N=T.get(t);if(N)return N;T.set(t,$),V(t)?t.forEach(function(r){$.add(e(r,n,a,r,t,T))}):G(t)&&t.forEach(function(r,i){$.set(i,e(r,n,a,i,t,T))});var C=x?k?A.A:y.A:k?l.A:o.A,P=I?void 0:C(t);return(0,i.A)(P||t,function(r,i){P&&(r=t[i=r]),(0,s.A)($,i,e(r,n,a,i,t,T))}),$}},8731:(e,t,n)=>{n.d(t,{qg:()=>a});n(4087),n(1366),n(9811),n(9786),n(3009),n(2852),n(3758);var r=n(8198),i={},s={info:(0,r.K2)(async()=>{const{createInfoServices:e}=await n.e(2068).then(n.bind(n,2068)),t=e().Info.parser.LangiumParser;i.info=t},"info"),packet:(0,r.K2)(async()=>{const{createPacketServices:e}=await n.e(8716).then(n.bind(n,8716)),t=e().Packet.parser.LangiumParser;i.packet=t},"packet"),pie:(0,r.K2)(async()=>{const{createPieServices:e}=await n.e(8188).then(n.bind(n,8188)),t=e().Pie.parser.LangiumParser;i.pie=t},"pie"),architecture:(0,r.K2)(async()=>{const{createArchitectureServices:e}=await n.e(2498).then(n.bind(n,2498)),t=e().Architecture.parser.LangiumParser;i.architecture=t},"architecture"),gitGraph:(0,r.K2)(async()=>{const{createGitGraphServices:e}=await n.e(5392).then(n.bind(n,5392)),t=e().GitGraph.parser.LangiumParser;i.gitGraph=t},"gitGraph"),radar:(0,r.K2)(async()=>{const{createRadarServices:e}=await n.e(3956).then(n.bind(n,3956)),t=e().Radar.parser.LangiumParser;i.radar=t},"radar"),treemap:(0,r.K2)(async()=>{const{createTreemapServices:e}=await n.e(4504).then(n.bind(n,4504)),t=e().Treemap.parser.LangiumParser;i.treemap=t},"treemap")};async function a(e,t){const n=s[e];if(!n)throw new Error(`Unknown diagram type: ${e}`);i[e]||await n();const r=i[e].parse(t);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new o(r);return r.value}(0,r.K2)(a,"parse");var o=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map(e=>e.message).join("\n")} ${e.parserErrors.map(e=>e.message).join("\n")}`),this.result=e}static{(0,r.K2)(this,"MermaidParseError")}}},8833:(e,t,n)=>{n.d(t,{P:()=>i});var r=n(1750),i=(0,r.K2)((e,t,n,i)=>{e.attr("class",n);const{width:o,height:c,x:l,y:u}=s(e,t);(0,r.a$)(e,c,o,i);const d=a(l,u,o,c,t);e.attr("viewBox",d),r.Rm.debug(`viewBox configured: ${d} with padding: ${t}`)},"setupViewPortForSVG"),s=(0,r.K2)((e,t)=>{const n=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+2*t,height:n.height+2*t,x:n.x,y:n.y}},"calculateDimensionsWithPadding"),a=(0,r.K2)((e,t,n,r,i)=>`${e-i} ${t-i} ${n} ${r}`,"createViewBox")},8894:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(241),i=n(5572),s=n(2049),a=n(1882),o=r.A?r.A.prototype:void 0,c=o?o.toString:void 0;const l=function e(t){if("string"==typeof t)return t;if((0,s.A)(t))return(0,i.A)(t,e)+"";if((0,a.A)(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n};const u=function(e){return null==e?"":l(e)}},8913:(e,t,n)=>{n.d(t,{t:()=>Fr,u:()=>Gr});var r=n(6373),i=n(418),s=n(2806),a=n(2151);var o=n(9637),c=n(4722),l=n(4092);function u(e,t,n){return`${e.name}_${t}_${n}`}class d{constructor(e){this.target=e}isEpsilon(){return!1}}class f extends d{constructor(e,t){super(e),this.tokenType=t}}class h extends d{constructor(e){super(e)}isEpsilon(){return!0}}class p extends d{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}}function m(e){const t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};!function(e,t){const n=t.length;for(let r=0;rg(e,t,n)),s=R(e,t,r,n,...i);return s}(e,t,n):n instanceof o.c$?function(e,t,n){const r=x(e,t,n,{type:1});T(e,r);const i=R(e,t,r,n,y(e,t,n));return function(e,t,n,r){const i=r.left,s=r.right;return k(i,s),e.decisionMap[u(t,"Option",n.idx)]=i,r}(e,t,n,i)}(e,t,n):n instanceof o.Y2?function(e,t,n){const r=x(e,t,n,{type:5});T(e,r);const i=R(e,t,r,n,y(e,t,n));return v(e,t,n,i)}(e,t,n):n instanceof o.Pp?function(e,t,n){const r=x(e,t,n,{type:5});T(e,r);const i=R(e,t,r,n,y(e,t,n)),s=$(e,t,n.separator,n);return v(e,t,n,i,s)}(e,t,n):n instanceof o.$P?function(e,t,n){const r=x(e,t,n,{type:4});T(e,r);const i=R(e,t,r,n,y(e,t,n));return A(e,t,n,i)}(e,t,n):n instanceof o.Cy?function(e,t,n){const r=x(e,t,n,{type:4});T(e,r);const i=R(e,t,r,n,y(e,t,n)),s=$(e,t,n.separator,n);return A(e,t,n,i,s)}(e,t,n):y(e,t,n)}function y(e,t,n){const r=(0,l.A)((0,c.A)(n.definition,n=>g(e,t,n)),e=>void 0!==e);return 1===r.length?r[0]:0===r.length?void 0:function(e,t){const n=t.length;for(let s=0;se.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function C(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}var b=n(6452),L=n(8139),O=n(3958),_=n(9902);const P=function(e,t){return e&&e.length?(0,_.A)(e,(0,O.A)(t,2)):[]};var M=n(4098),D=n(8058),U=n(6401),F=n(9463);function G(e,t){const n={};return r=>{const i=r.toString();let s=n[i];return void 0!==s||(s={atnStartState:e,decision:t,states:{}},n[i]=s),s}}class K{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;nconsole.log(e)}initialize(e){this.atn=m(e.rules),this.dfas=function(e){const t=e.decisionStates.length,n=Array(t);for(let r=0;r(0,c.A)(e,e=>e[0]));if(V(f,!1)&&!i){const e=(0,F.A)(f,(e,t,n)=>((0,D.A)(t,t=>{t&&(e[t.tokenTypeIdx]=n,(0,D.A)(t.categoryMatches,t=>{e[t]=n}))}),e),{});return r?function(t){var n;const r=this.LA(1),i=e[r.tokenTypeIdx];if(void 0!==t&&void 0!==i){const e=null===(n=t[i])||void 0===n?void 0:n.GATE;if(void 0!==e&&!1===e.call(this))return}return i}:function(){const t=this.LA(1);return e[t.tokenTypeIdx]}}return r?function(e){const t=new K,n=void 0===e?0:e.length;for(let i=0;i(0,c.A)(e,e=>e[0]));if(V(f)&&f[0][0]&&!i){const e=f[0],t=(0,M.A)(e);if(1===t.length&&(0,U.A)(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=(0,F.A)(t,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,(0,D.A)(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){const e=H.call(this,s,d,j,a);return"object"!=typeof e&&0===e}}}function V(e,t=!0){const n=new Set;for(const r of e){const e=new Set;for(const i of r){if(void 0===i){if(t)break;return!1}const r=[i.tokenTypeIdx].concat(i.categoryMatches);for(const t of r)if(n.has(t)){if(!e.has(t))return!1}else n.add(t),e.add(t)}}return!0}function H(e,t,n,r){const i=e[t](n);let s=i.start;if(void 0===s){s=ee(i,Z(te(i.atnStartState))),i.start=s}return W.apply(this,[i,s,n,r])}function W(e,t,n,r){let i=t,s=1;const a=[];let o=this.LA(s++);for(;;){let t=q(i,o);if(void 0===t&&(t=z.apply(this,[e,i,o,s,n,r])),t===w)return X(a,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,a.push(o),o=this.LA(s++)}}function z(e,t,n,r,i,s){const a=function(e,t,n){const r=new N,i=[];for(const a of e.elements){if(!1===n.is(a.alt))continue;if(7===a.state.type){i.push(a);continue}const e=a.state.transitions.length;for(let n=0;n0&&!function(e){for(const t of e.elements)if(7===t.state.type)return!0;return!1}(s))for(const a of i)s.add(a);return s}(t.configs,n,i);if(0===a.size)return J(e,t,n,w),w;let o=Z(a);const c=function(e,t){let n;for(const r of e.elements)if(!0===t.is(r.alt))if(void 0===n)n=r.alt;else if(n!==r.alt)return;return n}(a,i);if(void 0!==c)o.isAcceptState=!0,o.prediction=c,o.configs.uniqueAlt=c;else if(function(e){if(function(e){for(const t of e.elements)if(7!==t.state.type)return!1;return!0}(e))return!0;const t=function(e){const t=new Map;for(const n of e){const e=C(n,!1);let r=t.get(e);void 0===r&&(r={},t.set(e,r)),r[n.alt]=!0}return t}(e.elements);return function(e){for(const t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}(t)&&!function(e){for(const t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}(t)}(a)){const t=(0,b.A)(a.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,Y.apply(this,[e,r,a.alts,s])}return o=J(e,t,n,o),o}function Y(e,t,n,r){const i=[];for(let a=1;a<=t;a++)i.push(this.LA(a).tokenType);const s=e.atnStartState;r(function(e){const t=(0,c.A)(e.prefixPath,e=>(0,o.Sk)(e)).join(", "),n=0===e.production.idx?"":e.production.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${function(e){if(e instanceof o.wL)return"SUBRULE";if(e instanceof o.c$)return"OPTION";if(e instanceof o.ak)return"OR";if(e instanceof o.$P)return"AT_LEAST_ONE";if(e instanceof o.Cy)return"AT_LEAST_ONE_SEP";if(e instanceof o.Pp)return"MANY_SEP";if(e instanceof o.Y2)return"MANY";if(e instanceof o.BK)return"CONSUME";throw Error("non exhaustive match")}(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r}({topLevelRule:s.rule,ambiguityIndices:n,production:s.production,prefixPath:i}))}function X(e,t,n){const r=(0,L.A)(t.configs.elements,e=>e.state.transitions);return{actualToken:n,possibleTokenTypes:P(r.filter(e=>e instanceof f).map(e=>e.tokenType),e=>e.tokenTypeIdx),tokenPath:e}}function q(e,t){return e.edges[t.tokenTypeIdx]}function Q(e,t){if(e instanceof f&&(0,o.G)(t,e.tokenType))return e.target}function Z(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function J(e,t,n,r){return r=ee(e,r),t.edges[n.tokenTypeIdx]=r,r}function ee(e,t){if(t===w)return t;const n=t.configs.key,r=e.states[n];return void 0!==r?r:(t.configs.finalize(),e.states[n]=t,t)}function te(e){const t=new N,n=e.transitions.length;for(let r=0;r0){const n=[...e.stack];ne({state:n.pop(),alt:e.alt,stack:n},t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);const r=n.transitions.length;for(let i=0;i0&&(r.arguments=n),r},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.string(t.title)&&Ct.string(t.command)}}($e||($e={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){const t=e;return Ct.objectLiteral(t)&&Ct.string(t.newText)&&le.is(t.range)}}(Ee||(Ee={})),function(e){e.create=function(e,t,n){const r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},e.is=function(e){const t=e;return Ct.objectLiteral(t)&&Ct.string(t.label)&&(Ct.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(Ct.string(t.description)||void 0===t.description)}}(ke||(ke={})),function(e){e.is=function(e){const t=e;return Ct.string(t)}}(xe||(xe={})),function(e){e.replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},e.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},e.del=function(e,t){return{range:e,newText:"",annotationId:t}},e.is=function(e){const t=e;return Ee.is(t)&&(ke.is(t.annotationId)||xe.is(t.annotationId))}}(Ie||(Ie={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){let t=e;return Ct.defined(t)&&_e.is(t.textDocument)&&Array.isArray(t.edits)}}(Se||(Se={})),function(e){e.create=function(e,t,n){let r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){let t=e;return t&&"create"===t.kind&&Ct.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||Ct.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||Ct.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||xe.is(t.annotationId))}}(we||(we={})),function(e){e.create=function(e,t,n,r){let i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},e.is=function(e){let t=e;return t&&"rename"===t.kind&&Ct.string(t.oldUri)&&Ct.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||Ct.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||Ct.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||xe.is(t.annotationId))}}(Ne||(Ne={})),function(e){e.create=function(e,t,n){let r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){let t=e;return t&&"delete"===t.kind&&Ct.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||Ct.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||Ct.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||xe.is(t.annotationId))}}(Ce||(Ce={})),function(e){e.is=function(e){let t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every(e=>Ct.string(e.kind)?we.is(e)||Ne.is(e)||Ce.is(e):Se.is(e)))}}(be||(be={}));!function(e){e.create=function(e){return{uri:e}},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.string(t.uri)}}(Le||(Le={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.string(t.uri)&&Ct.integer(t.version)}}(Oe||(Oe={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.string(t.uri)&&(null===t.version||Ct.integer(t.version))}}(_e||(_e={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.string(t.uri)&&Ct.string(t.languageId)&&Ct.integer(t.version)&&Ct.string(t.text)}}(Pe||(Pe={})),function(e){e.PlainText="plaintext",e.Markdown="markdown",e.is=function(t){const n=t;return n===e.PlainText||n===e.Markdown}}(Me||(Me={})),function(e){e.is=function(e){const t=e;return Ct.objectLiteral(e)&&Me.is(t.kind)&&Ct.string(t.value)}}(De||(De={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(Ue||(Ue={})),function(e){e.PlainText=1,e.Snippet=2}(Fe||(Fe={})),function(e){e.Deprecated=1}(Ge||(Ge={})),function(e){e.create=function(e,t,n){return{newText:e,insert:t,replace:n}},e.is=function(e){const t=e;return t&&Ct.string(t.newText)&&le.is(t.insert)&&le.is(t.replace)}}(Ke||(Ke={})),function(e){e.asIs=1,e.adjustIndentation=2}(je||(je={})),function(e){e.is=function(e){const t=e;return t&&(Ct.string(t.detail)||void 0===t.detail)&&(Ct.string(t.description)||void 0===t.description)}}(Be||(Be={})),function(e){e.create=function(e){return{label:e}}}(Ve||(Ve={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(He||(He={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){const t=e;return Ct.string(t)||Ct.objectLiteral(t)&&Ct.string(t.language)&&Ct.string(t.value)}}(We||(We={})),function(e){e.is=function(e){let t=e;return!!t&&Ct.objectLiteral(t)&&(De.is(t.contents)||We.is(t.contents)||Ct.typedArray(t.contents,We.is))&&(void 0===e.range||le.is(e.range))}}(ze||(ze={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(Ye||(Ye={})),function(e){e.create=function(e,t,...n){let r={label:e};return Ct.defined(t)&&(r.documentation=t),Ct.defined(n)?r.parameters=n:r.parameters=[],r}}(Xe||(Xe={})),function(e){e.Text=1,e.Read=2,e.Write=3}(qe||(qe={})),function(e){e.create=function(e,t){let n={range:e};return Ct.number(t)&&(n.kind=t),n}}(Qe||(Qe={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(Ze||(Ze={})),function(e){e.Deprecated=1}(Je||(Je={})),function(e){e.create=function(e,t,n,r,i){let s={name:e,kind:t,location:{uri:r,range:n}};return i&&(s.containerName=i),s}}(et||(et={})),function(e){e.create=function(e,t,n,r){return void 0!==r?{name:e,kind:t,location:{uri:n,range:r}}:{name:e,kind:t,location:{uri:n}}}}(tt||(tt={})),function(e){e.create=function(e,t,n,r,i,s){let a={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==s&&(a.children=s),a},e.is=function(e){let t=e;return t&&Ct.string(t.name)&&Ct.number(t.kind)&&le.is(t.range)&&le.is(t.selectionRange)&&(void 0===t.detail||Ct.string(t.detail))&&(void 0===t.deprecated||Ct.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}}(nt||(nt={})),function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"}(rt||(rt={})),function(e){e.Invoked=1,e.Automatic=2}(it||(it={})),function(e){e.create=function(e,t,n){let r={diagnostics:e};return null!=t&&(r.only=t),null!=n&&(r.triggerKind=n),r},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.typedArray(t.diagnostics,Re.is)&&(void 0===t.only||Ct.typedArray(t.only,Ct.string))&&(void 0===t.triggerKind||t.triggerKind===it.Invoked||t.triggerKind===it.Automatic)}}(st||(st={})),function(e){e.create=function(e,t,n){let r={title:e},i=!0;return"string"==typeof t?(i=!1,r.kind=t):$e.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},e.is=function(e){let t=e;return t&&Ct.string(t.title)&&(void 0===t.diagnostics||Ct.typedArray(t.diagnostics,Re.is))&&(void 0===t.kind||Ct.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||$e.is(t.command))&&(void 0===t.isPreferred||Ct.boolean(t.isPreferred))&&(void 0===t.edit||be.is(t.edit))}}(at||(at={})),function(e){e.create=function(e,t){let n={range:e};return Ct.defined(t)&&(n.data=t),n},e.is=function(e){let t=e;return Ct.defined(t)&&le.is(t.range)&&(Ct.undefined(t.command)||$e.is(t.command))}}(ot||(ot={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){let t=e;return Ct.defined(t)&&Ct.uinteger(t.tabSize)&&Ct.boolean(t.insertSpaces)}}(ct||(ct={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){let t=e;return Ct.defined(t)&&le.is(t.range)&&(Ct.undefined(t.target)||Ct.string(t.target))}}(lt||(lt={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){let n=t;return Ct.objectLiteral(n)&&le.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(ut||(ut={})),function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"}(dt||(dt={})),function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"}(ft||(ft={})),function(e){e.is=function(e){const t=e;return Ct.objectLiteral(t)&&(void 0===t.resultId||"string"==typeof t.resultId)&&Array.isArray(t.data)&&(0===t.data.length||"number"==typeof t.data[0])}}(ht||(ht={})),function(e){e.create=function(e,t){return{range:e,text:t}},e.is=function(e){const t=e;return null!=t&&le.is(t.range)&&Ct.string(t.text)}}(pt||(pt={})),function(e){e.create=function(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}},e.is=function(e){const t=e;return null!=t&&le.is(t.range)&&Ct.boolean(t.caseSensitiveLookup)&&(Ct.string(t.variableName)||void 0===t.variableName)}}(mt||(mt={})),function(e){e.create=function(e,t){return{range:e,expression:t}},e.is=function(e){const t=e;return null!=t&&le.is(t.range)&&(Ct.string(t.expression)||void 0===t.expression)}}(gt||(gt={})),function(e){e.create=function(e,t){return{frameId:e,stoppedLocation:t}},e.is=function(e){const t=e;return Ct.defined(t)&&le.is(e.stoppedLocation)}}(yt||(yt={})),function(e){e.Type=1,e.Parameter=2,e.is=function(e){return 1===e||2===e}}(At||(At={})),function(e){e.create=function(e){return{value:e}},e.is=function(e){const t=e;return Ct.objectLiteral(t)&&(void 0===t.tooltip||Ct.string(t.tooltip)||De.is(t.tooltip))&&(void 0===t.location||ue.is(t.location))&&(void 0===t.command||$e.is(t.command))}}(vt||(vt={})),function(e){e.create=function(e,t,n){const r={position:e,label:t};return void 0!==n&&(r.kind=n),r},e.is=function(e){const t=e;return Ct.objectLiteral(t)&&ce.is(t.position)&&(Ct.string(t.label)||Ct.typedArray(t.label,vt.is))&&(void 0===t.kind||At.is(t.kind))&&void 0===t.textEdits||Ct.typedArray(t.textEdits,Ee.is)&&(void 0===t.tooltip||Ct.string(t.tooltip)||De.is(t.tooltip))&&(void 0===t.paddingLeft||Ct.boolean(t.paddingLeft))&&(void 0===t.paddingRight||Ct.boolean(t.paddingRight))}}(Tt||(Tt={})),function(e){e.createSnippet=function(e){return{kind:"snippet",value:e}}}(Rt||(Rt={})),function(e){e.create=function(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}}($t||($t={})),function(e){e.create=function(e){return{items:e}}}(Et||(Et={})),function(e){e.Invoked=0,e.Automatic=1}(kt||(kt={})),function(e){e.create=function(e,t){return{range:e,text:t}}}(xt||(xt={})),function(e){e.create=function(e,t){return{triggerKind:e,selectedCompletionInfo:t}}}(It||(It={})),function(e){e.is=function(e){const t=e;return Ct.objectLiteral(t)&&se.is(t.uri)&&Ct.string(t.name)}}(St||(St={}));var Nt,Ct;!function(e){function t(e,n){if(e.length<=1)return e;const r=e.length/2|0,i=e.slice(0,r),s=e.slice(r);t(i,n),t(s,n);let a=0,o=0,c=0;for(;a{let n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n}),s=r.length;for(let t=i.length-1;t>=0;t--){let n=i[t],a=e.offsetAt(n.range.start),o=e.offsetAt(n.range.end);if(!(o<=s))throw new Error("Overlapping edit");r=r.substring(0,a)+n.newText+r.substring(o,r.length),s=a}return r}}(Nt||(Nt={}));class bt{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,n=!0;for(let r=0;r0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return ce.create(0,e);for(;ne?r=i:n=i+1}let i=n-1;return ce.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1=0&&t.content.splice(n,1)}}addHiddenNodes(e){const t=[];for(const s of e){const e=new _t(s.startOffset,s.image.length,(0,r.wf)(s),s.tokenType,!0);e.root=this.rootNode,t.push(e)}let n=this.current,i=!1;if(n.content.length>0)n.content.push(...t);else{for(;n.container;){const e=n.container.content.indexOf(n);if(e>0){n.container.content.splice(e,0,...t),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...t)}}construct(e){const t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;const n=this.nodeStack.pop();0===(null==n?void 0:n.content.length)&&this.removeNode(n)}}class Ot{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const n="string"==typeof(null===(e=this._astNode)||void 0===e?void 0:e.$type)?this._astNode:null===(t=this.container)||void 0===t?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class _t extends Ot{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,n,r,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=r,this._length=t,this._range=n}}class Pt extends Ot{constructor(){super(...arguments),this.content=new Mt(this)}get children(){return this.content}get offset(){var e,t;return null!==(t=null===(e=this.firstNonHiddenNode)||void 0===e?void 0:e.offset)&&void 0!==t?t:0}get length(){return this.end-this.offset}get end(){var e,t;return null!==(t=null===(e=this.lastNonHiddenNode)||void 0===e?void 0:e.end)&&void 0!==t?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(void 0===this._rangeCache){const{range:n}=e,{range:r}=t;this._rangeCache={start:n.start,end:r.end.line=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class Mt extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Mt.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(const t of e)t.container=this.parent}}class Dt extends Pt{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=null!=e?e:""}}const Ut=Symbol("Datatype");function Ft(e){return e.$type===Ut}const Gt=e=>e.endsWith("\u200b")?e:e+"\u200b";class Kt{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,n="production"===e.LanguageMetaData.mode;this.wrapper=new zt(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class jt extends Kt{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Lt,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e),r=this.wrapper.DEFINE_RULE(Gt(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}computeRuleType(e){if(!e.fragment){if((0,i.Xq)(e))return Ut;{const t=(0,i.PV)(e);return null!=t?t:e.name}}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const r=t.rule?this.allRules.get(t.rule):this.mainRule;if(!r)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const i=r.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:i,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const r=!this.isRecording()&&void 0!==e;if(r){const t={$type:e};this.stack.push(t),e===Ut&&(t.value="")}let i;try{i=t(n)}catch(s){i=void 0}return void 0===i&&r&&(i=this.construct()),i}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const n=e.startOffset;for(let r=0;rn)return t.splice(0,r)}return t.splice(0,t.length)}consume(e,t,n){const r=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(r)){const e=this.extractHiddenTokens(r);this.nodeBuilder.addHiddenNodes(e);const t=this.nodeBuilder.buildLeafNode(r,n),{assignment:i,isCrossRef:s}=this.getAssignment(n),o=this.current;if(i){const e=(0,a.wb)(n)?r.image:this.converter.convert(r.image,t);this.assign(i.operator,i.feature,e,t,s)}else if(Ft(o)){let e=r.image;(0,a.wb)(n)||(e=this.converter.convert(e,t).toString()),o.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,n,r,i){let s;this.isRecording()||n||(s=this.nodeBuilder.buildCompositeNode(r));const a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,r,s)}performSubruleAssignment(e,t,n){const{assignment:r,isCrossRef:i}=this.getAssignment(t);if(r)this.assign(r.operator,r.feature,e,n,i);else if(!r){const t=this.current;if(Ft(t))t.value+=e.toString();else if("object"==typeof e&&e){const n=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(t.feature&&t.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode);this.nodeBuilder.buildCompositeNode(t).content.push(n.$cstNode);const r={$type:e};this.stack.push(r),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return(0,wt.SD)(e),this.nodeBuilder.construct(e),this.stack.pop(),Ft(e)?this.converter.convert(e.value,e.$cstNode):((0,wt.OP)(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=(0,wt.XG)(e,a.wh);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&(0,a._c)(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,n,r,i){const s=this.current;let a;switch(a=i&&"string"==typeof n?this.linker.buildReference(s,t,r,n):n,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(const[r,i]of Object.entries(t)){const t=e[r];void 0===t?e[r]=i:Array.isArray(t)&&Array.isArray(i)&&(i.push(...t),e[r]=i)}const n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class Bt{buildMismatchTokenMessage(e){return o.my.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return o.my.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return o.my.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return o.my.buildEarlyExitMessage(e)}}class Vt extends Bt{buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class Ht extends Kt{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const n=this.wrapper.DEFINE_RULE(Gt(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,t,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const Wt={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Vt};class zt extends o.jr{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Wt),{lookaheadStrategy:n?new o.T6({maxLookahead:t.maxLookahead}):new B({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}var Yt=n(9183),Xt=n(1719);function qt(e,t,n){return function(e,t){const n=(0,i.YV)(t,!1),r=(0,Xt.Td)(t.rules).filter(a.s7).filter(e=>n.has(e));for(const i of r){const t=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(i,Qt(t,i.definition))}}({parser:t,tokens:n,ruleNames:new Map},e),t}function Qt(e,t,n=!1){let r;if((0,a.wb)(t))r=function(e,t){const n=e.consume++,r=e.tokens[t.value];if(!r)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(n,r,t)}(e,t);else if((0,a.ve)(t))r=function(e,t){const n=(0,i.Uz)(t);return()=>e.parser.action(n,t)}(e,t);else if((0,a.wh)(t))r=Qt(e,t.terminal);else if((0,a._c)(t))r=en(e,t);else if((0,a.$g)(t))r=function(e,t){const n=t.rule.ref;if((0,a.s7)(n)){const r=e.subrule++,i=n.fragment,s=t.arguments.length>0?function(e,t){const n=t.map(e=>Zt(e.value));return t=>{const r={};for(let i=0;i({});return a=>e.parser.subrule(r,nn(e,n),i,t,s(a))}if((0,a.rE)(n)){const r=e.consume++,i=rn(e,n.name);return()=>e.parser.consume(r,i,t)}if(!n)throw new Yt.W(t.$cstNode,`Undefined rule: ${t.rule.$refText}`);(0,Yt.d)(n)}(e,t);else if((0,a.jp)(t))r=function(e,t){if(1===t.elements.length)return Qt(e,t.elements[0]);{const n=[];for(const i of t.elements){const t={ALT:Qt(e,i,!0)},r=Jt(i);r&&(t.GATE=Zt(r)),n.push(t)}const r=e.or++;return t=>e.parser.alternatives(r,n.map(e=>{const n={ALT:()=>e.ALT(t)},r=e.GATE;return r&&(n.GATE=()=>r(t)),n}))}}(e,t);else if((0,a.cY)(t))r=function(e,t){if(1===t.elements.length)return Qt(e,t.elements[0]);const n=[];for(const o of t.elements){const t={ALT:Qt(e,o,!0)},r=Jt(o);r&&(t.GATE=Zt(r)),n.push(t)}const r=e.or++,i=(e,t)=>`uGroup_${e}_${t.getRuleStack().join("-")}`,s=t=>e.parser.alternatives(r,n.map((n,s)=>{const a={ALT:()=>!0},o=e.parser;a.ALT=()=>{if(n.ALT(t),!o.isRecording()){const e=i(r,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);const t=o.unorderedGroups.get(e);void 0===(null==t?void 0:t[s])&&(t[s]=!0)}};const c=n.GATE;return a.GATE=c?()=>c(t):()=>{const e=o.unorderedGroups.get(i(r,o));return!(null==e?void 0:e[s])},a})),a=tn(e,Jt(t),s,"*");return t=>{a(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}(e,t);else if((0,a.IZ)(t))r=function(e,t){const n=t.elements.map(t=>Qt(e,t));return e=>n.forEach(t=>t(e))}(e,t);else{if(!(0,a.FO)(t))throw new Yt.W(t.$cstNode,`Unexpected element type: ${t.$type}`);{const n=e.consume++;r=()=>e.parser.consume(n,o.LT,t)}}return tn(e,n?void 0:Jt(t),r,t.cardinality)}function Zt(e){if((0,a.RP)(e)){const t=Zt(e.left),n=Zt(e.right);return e=>t(e)||n(e)}if((0,a.Tu)(e)){const t=Zt(e.left),n=Zt(e.right);return e=>t(e)&&n(e)}if((0,a.Ct)(e)){const t=Zt(e.value);return e=>!t(e)}if((0,a.TF)(e)){const t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if((0,a.Cz)(e)){const t=Boolean(e.true);return()=>t}(0,Yt.d)(e)}function Jt(e){if((0,a.IZ)(e))return e.guardCondition}function en(e,t,n=t.terminal){if(n){if((0,a.$g)(n)&&(0,a.s7)(n.rule.ref)){const r=n.rule.ref,i=e.subrule++;return n=>e.parser.subrule(i,nn(e,r),!1,t,n)}if((0,a.$g)(n)&&(0,a.rE)(n.rule.ref)){const r=e.consume++,i=rn(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}if((0,a.wb)(n)){const r=e.consume++,i=rn(e,n.value);return()=>e.parser.consume(r,i,t)}throw new Error("Could not build cross reference parser")}{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);const n=(0,i.U5)(t.type.ref),r=null==n?void 0:n.terminal;if(!r)throw new Error("Could not find name assignment for type: "+(0,i.Uz)(t.type.ref));return en(e,t,r)}}function tn(e,t,n,r){const i=t&&Zt(t);if(!r){if(i){const t=e.or++;return r=>e.parser.alternatives(t,[{ALT:()=>n(r),GATE:()=>i(r)},{ALT:(0,o.mT)(),GATE:()=>!i(r)}])}return n}if("*"===r){const t=e.many++;return r=>e.parser.many(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}if("+"===r){const t=e.many++;if(i){const r=e.or++;return s=>e.parser.alternatives(r,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>n(s)}),GATE:()=>i(s)},{ALT:(0,o.mT)(),GATE:()=>!i(s)}])}return r=>e.parser.atLeastOne(t,{DEF:()=>n(r)})}if("?"===r){const t=e.optional++;return r=>e.parser.optional(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}(0,Yt.d)(r)}function nn(e,t){const n=function(e,t){if((0,a.s7)(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!(0,a.s7)(r);){if((0,a.IZ)(r)||(0,a.jp)(r)||(0,a.cY)(r)){i=r.elements.indexOf(n).toString()+":"+i}n=r,r=r.$container}return i=r.name+":"+i,e.ruleNames.set(t,i),i}}(e,t),r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function rn(e,t){const n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}function sn(e){const t=function(e){const t=e.Grammar,n=e.parser.Lexer,r=new jt(e);return qt(t,r,n.definition)}(e);return t.finalize(),t}var an=n(1945),on=n(5033),cn=n(9850),ln=n(2479);let un=0,dn=10;const fn=Symbol("OperationCancelled");function hn(e){return e===fn}async function pn(e){if(e===cn.XO.None)return;const t=performance.now();if(t-un>=dn&&(un=t,await new Promise(e=>{"undefined"==typeof setImmediate?setTimeout(e,0):setImmediate(e)}),un=performance.now()),e.isCancellationRequested)throw fn}class mn{constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}}class gn{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const n of e)if(gn.isIncremental(n)){const e=Rn(n.range),t=this.offsetAt(e.start),r=this.offsetAt(e.end);this._content=this._content.substring(0,t)+n.text+this._content.substring(r,this._content.length);const i=Math.max(e.start.line,0),s=Math.max(e.end.line,0);let a=this._lineOffsets;const o=vn(n.text,!1,t);if(s-i===o.length)for(let n=0,l=o.length;ne?r=i:n=i+1}const i=n-1;return{line:i,character:(e=this.ensureBeforeEOL(e,t[i]))-t[i]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const n=t[e.line];if(e.character<=0)return n;const r=e.line+1t&&Tn(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"==typeof t.rangeLength)}static isFull(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength}}var yn;function An(e,t){if(e.length<=1)return e;const n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);An(r,t),An(i,t);let s=0,a=0,o=0;for(;sn.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function $n(e){const t=Rn(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,n,r){return new gn(e,t,n,r)},e.update=function(e,t,n){if(e instanceof gn)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},e.applyEdits=function(e,t){const n=e.getText(),r=An(t.map($n),(e,t)=>{const n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n});let i=0;const s=[];for(const a of r){const t=e.offsetAt(a.range.start);if(ti&&s.push(n.substring(i,t)),a.newText.length&&s.push(a.newText),i=e.offsetAt(a.range.end)}return s.push(n.substr(i)),s.join("")}}(yn||(yn={}));var En,kn=n(7608);!function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"}(En||(En={}));class xn{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=cn.XO.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=null!=t?t:kn.r.parse(e.uri),cn.XO.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return cn.XO.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,n){if("string"==typeof t){const r=this.parse(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}if("$model"in t){const n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}{const r=this.parse(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,n){if("string"==typeof t){const r=await this.parseAsync(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}{const r=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}createLangiumDocument(e,t,n,r){let i;if(n)i={parseResult:e,uri:t,state:En.Parsed,references:[],textDocument:n};else{const n=this.createTextDocumentGetter(t,r);i={parseResult:e,uri:t,state:En.Parsed,references:[],get textDocument(){return n()}}}return e.value.$document=i,i}async update(e,t){var n,r;const i=null===(n=e.parseResult.value.$cstNode)||void 0===n?void 0:n.root.fullText,s=null===(r=this.textDocuments)||void 0===r?void 0:r.get(e.uri.toString()),a=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{const t=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:t})}return i!==a&&(e.parseResult=await this.parseAsync(e.uri,a,t),e.parseResult.value.$document=e),e.state=En.Parsed,e}parse(e,t,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,n)}parseAsync(e,t,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){const n=this.serviceRegistry;let r;return()=>null!=r?r:r=yn.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,null!=t?t:"")}}class In{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return(0,Xt.Td)(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then(e=>(this.addDocument(e),e));{const n=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(n),n}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),n=this.documentMap.get(t);if(n){this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=En.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0}return n}deleteDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=En.Changed,this.documentMap.delete(t)),n}}const Sn=Symbol("ref_resolving");class wn{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=cn.XO.None){for(const n of(0,wt.jm)(e.parseResult.value))await pn(t),(0,wt.DM)(n).forEach(t=>this.doLink(t,e))}doLink(e,t){var n;const r=e.reference;if(void 0===r._ref){r._ref=Sn;try{const t=this.getCandidate(e);if((0,ln.Zl)(t))r._ref=t;else if(r._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){const n=this.loadAstNode(t);r._ref=null!=n?n:this.createLinkingError(e,t)}else r._ref=void 0}catch(i){console.error(`An error occurred while resolving reference to '${r.$refText}':`,i);const t=null!==(n=i.message)&&void 0!==n?n:String(i);r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${t}`})}t.references.push(r)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const t=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return null!=t?t:this.createLinkingError(e)}buildReference(e,t,n,r){const i=this,s={$refNode:n,$refText:r,get ref(){var n;if((0,ln.ng)(this._ref))return this._ref;if((0,ln.Nr)(this._nodeDescription)){const n=i.loadAstNode(this._nodeDescription);this._ref=null!=n?n:i.createLinkingError({reference:s,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=Sn;const r=(0,wt.cQ)(e).$document,a=i.getLinkedNode({reference:s,container:e,property:t});if(a.error&&r&&r.statee.length>0),s=r.split("/").filter(e=>e.length>0);let a=0;for(;a=e.end)return t.ref}if(n){const t=this.nameProvider.getNameNode(n);if(t&&(t===e||(0,r.pO)(e,t)))return n}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(null==t?void 0:t.$cstNode){const e=this.nameProvider.getNameNode(t);return null!=e?e:t.$cstNode}}findReferences(e,t){const n=[];if(t.includeDeclaration){const t=this.getReferenceToSelf(e);t&&n.push(t)}let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(r=r.filter(e=>Cn.equals(e.sourceUri,t.documentUri))),n.push(...r),(0,Xt.Td)(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=(0,wt.YE)(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:(0,r.SX)(t),local:!0}}}}class Ln{constructor(e){if(this.map=new Map,e)for(const[t,n]of e)this.add(t,n)}get size(){return Xt.iD.sum((0,Xt.Td)(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{const n=this.map.get(e);if(n){const r=n.indexOf(t);if(r>=0)return 1===n.length?this.map.delete(e):n.splice(r,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{const n=this.map.get(e);return!!n&&n.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,n)=>t.forEach(t=>e(t,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return(0,Xt.Td)(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return(0,Xt.Td)(this.map.keys())}values(){return(0,Xt.Td)(this.map.values()).flat()}entriesGroupedByKey(){return(0,Xt.Td)(this.map.entries())}}class On{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}}class _n{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=cn.XO.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=wt.VN,r=cn.XO.None){const i=[];this.exportNode(e,i,t);for(const s of n(e))await pn(r),this.exportNode(s,i,t);return i}exportNode(e,t,n){const r=this.nameProvider.getName(e);r&&t.push(this.descriptions.createDescription(e,r,n))}async computeLocalScopes(e,t=cn.XO.None){const n=e.parseResult.value,r=new Ln;for(const i of(0,wt.Uo)(n))await pn(t),this.processNode(i,e,r);return r}processNode(e,t,n){const r=e.$container;if(r){const i=this.nameProvider.getName(e);i&&n.add(r,this.descriptions.createDescription(e,i,t))}}}class Pn{constructor(e,t,n){var r;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e);return t||(this.outerScope?this.outerScope.getElement(e):void 0)}}class Mn{constructor(e,t,n){var r;this.elements=new Map,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r;for(const i of e){const e=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.set(e,i)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(t);return n||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=(0,Xt.Td)(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class Dn{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Un extends Dn{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const n=t();return this.cache.set(e,n),n}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Fn extends Dn{constructor(e){super(),this.cache=new Map,this.converter=null!=e?e:e=>e}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();const r=this.cacheForContext(e);if(r.has(t))return r.get(t);if(n){const e=n();return r.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}}class Gn extends Un{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class Kn{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Gn(e.shared)}getScope(e){const t=[],n=this.reflection.getReferenceType(e),r=(0,wt.YE)(e.container).precomputedScopes;if(r){let i=e.container;do{const e=r.get(i);e.length>0&&t.push((0,Xt.Td)(e).filter(e=>this.reflection.isSubtype(e.type,n))),i=i.$container}while(i)}let i=this.getGlobalScope(n,e);for(let s=t.length-1;s>=0;s--)i=this.createScope(t[s],i);return i}createScope(e,t,n){return new Pn((0,Xt.Td)(e),t,n)}createScopeForNodes(e,t,n){const r=(0,Xt.Td)(e).map(e=>{const t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable();return new Pn(r,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Mn(this.indexManager.allElements(e)))}}function jn(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}class Bn{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const n=null!=t?t:{},r=null==t?void 0:t.replacer,i=(e,t)=>this.replacer(e,t,n),s=r?(e,t)=>r(e,t,i):i;try{return this.currentDocument=(0,wt.YE)(e),JSON.stringify(e,s,null==t?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const n=null!=t?t:{},r=JSON.parse(e);return this.linkNode(r,r,n),r}replacer(e,t,{refText:n,sourceText:r,textRegions:i,comments:s,uriConverter:a}){var o,c,l,u;if(!this.ignoreProperties.has(e)){if((0,ln.A_)(t)){const e=t.ref,r=n?t.$refText:void 0;if(e){const n=(0,wt.YE)(e);let i="";this.currentDocument&&this.currentDocument!==n&&(i=a?a(n.uri,t):n.uri.toString());return{$ref:`${i}#${this.astNodeLocator.getAstNodePath(e)}`,$refText:r}}return{$error:null!==(c=null===(o=t.error)||void 0===o?void 0:o.message)&&void 0!==c?c:"Could not resolve reference",$refText:r}}if((0,ln.ng)(t)){let n;if(i&&(n=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),e&&!t.$document||!(null==n?void 0:n.$textRegion)||(n.$textRegion.documentURI=null===(l=this.currentDocument)||void 0===l?void 0:l.uri.toString())),r&&!e&&(null!=n||(n=Object.assign({},t)),n.$sourceText=null===(u=t.$cstNode)||void 0===u?void 0:u.text),s){null!=n||(n=Object.assign({},t));const e=this.commentProvider.getComment(t);e&&(n.$comment=e.replace(/\r/g,""))}return null!=n?n:t}return t}}addAstNodeRegionWithAssignmentsTo(e){const t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){const n=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(r=>{const s=(0,i.Bd)(e.$cstNode,r).map(t);0!==s.length&&(n[r]=s)}),e}}linkNode(e,t,n,r,i,s){for(const[o,c]of Object.entries(e))if(Array.isArray(c))for(let r=0;r{await this.handleException(()=>e.call(t,n,r,i),"An error occurred during validation",r,n)}}async handleException(e,t,n,r){try{await e()}catch(i){if(hn(i))throw i;console.error(`${t}:`,i),i instanceof Error&&i.stack&&console.error(i.stack);n("error",`${t}: ${i instanceof Error?i.message:String(i)}`,{node:r})}}addEntry(e,t){if("AstNode"!==e)for(const n of this.reflection.getAllSubTypes(e))this.entries.add(n,t);else this.entries.add("AstNode",t)}getChecks(e,t){let n=(0,Xt.Td)(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(e=>t.includes(e.category))),n.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,n){return async(r,i,s,a)=>{await this.handleException(()=>e.call(n,r,i,s,a),t,i,r)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class Xn{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=cn.XO.None){const r=e.parseResult,i=[];if(await pn(n),!t.categories||t.categories.includes("built-in")){if(this.processLexingErrors(r,i,t),t.stopAfterLexingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===zn.LexingError}))return i;if(this.processParsingErrors(r,i,t),t.stopAfterParsingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===zn.ParsingError}))return i;if(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===zn.LinkingError}))return i}try{i.push(...await this.validateAst(r.value,t,n))}catch(s){if(hn(s))throw s;console.error("An error occurred during validation:",s)}return await pn(n),i}processLexingErrors(e,t,n){var r,i,s;const a=[...e.lexerErrors,...null!==(i=null===(r=e.lexerReport)||void 0===r?void 0:r.diagnostics)&&void 0!==i?i:[]];for(const o of a){const e=null!==(s=o.severity)&&void 0!==s?s:"error",n={severity:Qn(e),range:{start:{line:o.line-1,character:o.column-1},end:{line:o.line-1,character:o.column+o.length-1}},message:o.message,data:Zn(e),source:this.getSource()};t.push(n)}}processParsingErrors(e,t,n){for(const i of e.parserErrors){let e;if(isNaN(i.token.startOffset)){if("previousToken"in i){const t=i.previousToken;if(isNaN(t.startOffset)){const t={line:0,character:0};e={start:t,end:t}}else{const n={line:t.endLine-1,character:t.endColumn};e={start:n,end:n}}}}else e=(0,r.wf)(i.token);if(e){const n={severity:Qn("error"),range:e,message:i.message,data:Hn(zn.ParsingError),source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,n){for(const r of e.references){const e=r.error;if(e){const n={node:e.container,property:e.property,index:e.index,data:{code:zn.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,n=cn.XO.None){const r=[],i=(e,t,n)=>{r.push(this.toDiagnostic(e,t,n))};return await this.validateAstBefore(e,t,i,n),await this.validateAstNodes(e,t,i,n),await this.validateAstAfter(e,t,i,n),r}async validateAstBefore(e,t,n,r=cn.XO.None){var i;const s=this.validationRegistry.checksBefore;for(const a of s)await pn(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}async validateAstNodes(e,t,n,r=cn.XO.None){await Promise.all((0,wt.jm)(e).map(async e=>{await pn(r);const i=this.validationRegistry.getChecks(e.$type,t.categories);for(const t of i)await t(e,n,r)}))}async validateAstAfter(e,t,n,r=cn.XO.None){var i;const s=this.validationRegistry.checksAfter;for(const a of s)await pn(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}toDiagnostic(e,t,n){return{message:t,range:qn(n),severity:Qn(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function qn(e){if(e.range)return e.range;let t;return"string"==typeof e.property?t=(0,i.qO)(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=(0,i.SS)(e.node.$cstNode,e.keyword,e.index)),null!=t||(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Qn(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function Zn(e){switch(e){case"error":return Hn(zn.LexingError);case"warning":return Hn(zn.LexingWarning);case"info":return Hn(zn.LexingInfo);case"hint":return Hn(zn.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}!function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"}(zn||(zn={}));class Jn{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const i=null!=n?n:(0,wt.YE)(e);null!=t||(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var t;return null!=a?a:a=(0,r.SX)(null!==(t=this.nameProvider.getNameNode(e))&&void 0!==t?t:e.$cstNode)};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:(0,r.SX)(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class er{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=cn.XO.None){const n=[],r=e.parseResult.value;for(const i of(0,wt.jm)(r))await pn(t),(0,wt.DM)(i).filter(e=>!(0,ln.Zl)(e)).forEach(e=>{const t=this.createDescription(e);t&&n.push(t)});return n}createDescription(e){const t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;const i=(0,wt.YE)(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:(0,r.SX)(n),local:Cn.equals(t.documentUri,i)}}}class tr{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;const n=t.indexOf(this.indexSeparator);if(n>0){const r=t.substring(0,n),i=parseInt(t.substring(n+1)),s=e[r];return null==s?void 0:s[i]}return e[t]},e)}}var nr,rr=n(2676);class ir{constructor(e){this._ready=new mn,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new rr.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=null!==(n=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==n&&n}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,n[t])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const n=e.settings[t];this.updateSectionConfiguration(t,n),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}!function(e){e.create=function(e){return{dispose:async()=>await e()}}}(nr||(nr={}));class sr{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Ln,this.documentPhaseListeners=new Ln,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=En.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=cn.XO.None){var r,i;for(const s of e){const e=s.uri.toString();if(s.state===En.Validated){if("boolean"==typeof t.validation&&t.validation)s.state=En.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){const n=this.buildState.get(e),a=null===(r=null==n?void 0:n.result)||void 0===r?void 0:r.validationChecks;if(a){const r=(null!==(i=t.validation.categories)&&void 0!==i?i:Wn.all).filter(e=>!a.includes(e));r.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:r})},result:n.result}),s.state=En.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=En.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=cn.XO.None){this.currentState=En.Changed;for(const s of t)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(const s of e){if(!this.langiumDocuments.invalidateDocument(s)){const e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);e.state=En.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(s.toString())}const r=(0,Xt.Td)(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!r.has(e.uri.toString())&&this.shouldRelink(e,r)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,En.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await pn(n);const i=this.sortDocuments(this.langiumDocuments.all.filter(e=>{var t;return e.staten(e,t)))}sortDocuments(e){let t=0,n=e.length-1;for(;t=0&&!this.hasTextDocument(e[n]);)n--;tvoid 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),nr.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,En.Parsed,n,e=>this.langiumDocumentFactory.update(e,n)),await this.runCancelable(e,En.IndexedContent,n,e=>this.indexManager.updateContent(e,n)),await this.runCancelable(e,En.ComputedScopes,n,async e=>{const t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,n)}),await this.runCancelable(e,En.Linked,n,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,n)),await this.runCancelable(e,En.IndexedReferences,n,e=>this.indexManager.updateReferences(e,n));const r=e.filter(e=>this.shouldValidate(e));await this.runCancelable(r,En.Validated,n,e=>this.validate(e,n));for(const i of e){const e=this.buildState.get(i.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(const n of e){const e=n.uri.toString(),r=this.buildState.get(e);r&&!r.completed||this.buildState.set(e,{completed:!1,options:t,result:null==r?void 0:r.result})}}async runCancelable(e,t,n,r){const i=e.filter(e=>e.statee.state===t);await this.notifyBuildPhase(s,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),nr.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),nr.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let r;if(t&&"path"in t?r=t:n=t,null!=n||(n=cn.XO.None),r){const t=this.langiumDocuments.getDocument(r);if(t&&t.state>e)return Promise.resolve(r)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(fn):new Promise((t,i)=>{const s=this.onBuildPhase(e,()=>{if(s.dispose(),a.dispose(),r){const e=this.langiumDocuments.getDocument(r);t(null==e?void 0:e.uri)}else t(void 0)}),a=n.onCancellationRequested(()=>{s.dispose(),a.dispose(),i(fn)})})}async notifyDocumentPhase(e,t,n){const r=this.documentPhaseListeners.get(t).slice();for(const s of r)try{await s(e,n)}catch(i){if(!hn(i))throw i}}async notifyBuildPhase(e,t,n){if(0===e.length)return;const r=this.buildPhaseListeners.get(t).slice();for(const i of r)await pn(n),await i(e,n)}shouldValidate(e){return Boolean(this.getBuildOptions(e).validation)}async validate(e,t){var n,r;const i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,a="object"==typeof s?s:void 0,o=await i.validateDocument(e,a,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;const c=this.buildState.get(e.uri.toString());if(c){null!==(n=c.result)&&void 0!==n||(c.result={});const e=null!==(r=null==a?void 0:a.categories)&&void 0!==r?r:Wn.all;c.result.validationChecks?c.result.validationChecks.push(...e):c.result.validationChecks=[...e]}}getBuildOptions(e){var t,n;return null!==(n=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==n?n:{}}}class ar{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Fn,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const n=(0,wt.YE)(e).uri,r=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{Cn.equals(e.targetUri,n)&&e.targetPath===t&&r.push(e)})}),(0,Xt.Td)(r)}allElements(e,t){let n=(0,Xt.Td)(this.symbolIndex.keys());return t&&(n=n.filter(e=>!t||t.has(e))),n.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){var n;if(!t)return null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[];const r=this.symbolByTypeIndex.get(e,t,()=>{var n;return(null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[]).filter(e=>this.astReflection.isSubtype(e.type,t))});return r}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=cn.XO.None){const n=this.serviceRegistry.getServices(e.uri),r=await n.references.ScopeComputation.computeExports(e,t),i=e.uri.toString();this.symbolIndex.set(i,r),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=cn.XO.None){const n=this.serviceRegistry.getServices(e.uri),r=await n.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),r)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());return!!n&&n.some(e=>!e.local&&t.has(e.targetUri.toString()))}}class or{constructor(e){this.initialBuildOptions={},this._ready=new mn,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write(e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)})}async initializeWorkspace(e,t=cn.XO.None){const n=await this.performStartup(e);await pn(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),n=[],r=e=>{n.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,r),await Promise.all(e.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,t,r))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return kn.r.parse(e.uri)}async traverseFolder(e,t,n,r){const i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{if(this.includeEntry(e,t,n))if(t.isDirectory)await this.traverseFolder(e,t.uri,n,r);else if(t.isFile){const e=await this.langiumDocuments.getOrCreateDocument(t.uri);r(e)}}))}includeEntry(e,t,n){const r=Cn.basename(t.uri);if(r.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==r&&"out"!==r;if(t.isFile){const e=Cn.extname(t.uri);return n.includes(e)}return!1}}class cr{buildUnexpectedCharactersMessage(e,t,n,r,i){return o.PW.buildUnexpectedCharactersMessage(e,t,n,r,i)}buildUnableToPopLexerModeMessage(e){return o.PW.buildUnableToPopLexerModeMessage(e)}}const lr={mode:"full"};class ur{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=fr(t)?Object.values(t):t,r="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new o.JG(n,{positionTracking:"full",skipValidations:r,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=lr){var n,r,i;const s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:null!==(n=s.groups.hidden)&&void 0!==n?n:[],report:null===(i=(r=this.tokenBuilder).flushLexingReport)||void 0===i?void 0:i.call(r,e)}}toTokenTypeDictionary(e){if(fr(e))return e;const t=dr(e)?Object.values(e.modes).flat():e,n={};return t.forEach(e=>n[e.name]=e),n}}function dr(e){return e&&"modes"in e&&"defaultMode"in e}function fr(e){return!function(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}(e)&&!dr(e)}function hr(e,t,n){let r,i;"string"==typeof e?(i=t,r=n):(i=e.range.start,r=t),i||(i=ce.create(0,0));const s=function(e){var t,n,r;const i=[];let s=e.position.line,a=e.position.character;for(let o=0;o=u.length){if(i.length>0){const e=ce.create(s,a);i.push({type:"break",content:"",range:le.create(e,e)})}}else{mr.lastIndex=d;const e=mr.exec(u);if(e){const t=e[0],n=e[1],r=ce.create(s,a+d),o=ce.create(s,a+d+t.length);i.push({type:"tag",content:n,range:le.create(r,o)}),d+=t.length,d=Tr(u,d)}if(d0&&"break"===i[i.length-1].type)return i.slice(0,-1);return i}({lines:pr(e),position:i,options:Sr(r)});return function(e){var t,n,r,i;const s=ce.create(e.position.line,e.position.character);if(0===e.tokens.length)return new Nr([],le.create(s,s));const a=[];for(;e.index0&&i.push({type:"text",content:t.substring(s,e),range:le.create(ce.create(n,s+r),ce.create(n,e+r))});let c=a.length+1;const l=o[1];if(i.push({type:"inline-tag",content:l,range:le.create(ce.create(n,s+c+r),ce.create(n,s+c+l.length+r))}),c+=l.length,4===o.length){c+=o[2].length;const e=o[3];i.push({type:"text",content:e,range:le.create(ce.create(n,s+c+r),ce.create(n,s+c+e.length+r))})}else i.push({type:"text",content:"",range:le.create(ce.create(n,s+c+r),ce.create(n,s+c+r))});s=e+o[0].length}const a=t.substring(s);a.length>0&&i.push({type:"text",content:a,range:le.create(ce.create(n,s+r),ce.create(n,s+r+a.length))})}return i}const Ar=/\S/,vr=/\s*$/;function Tr(e,t){const n=e.substring(t).match(Ar);return n?t+n.index:e.length}function Rr(e){const t=e.match(vr);if(t&&"number"==typeof t.index)return t.index}function $r(e,t){const n=e.tokens[e.index];return"tag"===n.type?xr(e,!1):"text"===n.type||"inline-tag"===n.type?Er(e):(function(e,t){if(t){const n=new Lr("",e.range);"inlines"in t?t.inlines.push(n):t.content.inlines.push(n)}}(n,t),void e.index++)}function Er(e){let t=e.tokens[e.index];const n=t;let r=t;const i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push(kr(e)),r=t,t=e.tokens[e.index];return new br(i,le.create(n.range.start,r.range.end))}function kr(e){return"inline-tag"===e.tokens[e.index].type?xr(e,!0):Ir(e)}function xr(e,t){const n=e.tokens[e.index++],r=n.content.substring(1),i=e.tokens[e.index];if("text"===(null==i?void 0:i.type)){if(t){const i=Ir(e);return new Cr(r,new br([i],i.range),t,le.create(n.range.start,i.range.end))}{const i=Er(e);return new Cr(r,i,t,le.create(n.range.start,i.range.end))}}{const e=n.range;return new Cr(r,new br([],e),t,e)}}function Ir(e){const t=e.tokens[e.index++];return new Lr(t.content,t.range)}function Sr(e){if(!e)return Sr({start:"/**",end:"*/",line:"*"});const{start:t,end:n,line:r}=e;return{start:wr(t,!0),end:wr(n,!1),line:wr(r,!0)}}function wr(e,t){if("string"==typeof e||"object"==typeof e){const n="string"==typeof e?(0,s.Nt)(e):e.source;return t?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}return e}class Nr{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const t of this.elements)if(0===e.length)e=t.toString();else{const n=t.toString();e+=Or(e)+n}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements)if(0===t.length)t=n.toMarkdown(e);else{const r=n.toMarkdown(e);t+=Or(t)+r}return t.trim()}}class Cr{constructor(e,t,n,r){this.name=e,this.content=t,this.inline=n,this.range=r}toString(){let e=`@${this.name}`;const t=this.content.toString();return 1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}\n${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return null!==(n=null===(t=null==e?void 0:e.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==n?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const n=function(e,t,n){var r,i;if("linkplain"===e||"linkcode"===e||"link"===e){const s=t.indexOf(" ");let a=t;if(s>0){const e=Tr(t,s);a=t.substring(e),t=t.substring(0,s)}("linkcode"===e||"link"===e&&"code"===n.link)&&(a=`\`${a}\``);const o=null!==(i=null===(r=n.renderLink)||void 0===r?void 0:r.call(n,t,a))&&void 0!==i?i:function(e,t){try{return kn.r.parse(e,!0),`[${t}](${e})`}catch(r){return e}}(t,a);return o}return}(this.name,t,null!=e?e:{});if("string"==typeof n)return n}let n="";"italic"===(null==e?void 0:e.tag)||void 0===(null==e?void 0:e.tag)?n="*":"bold"===(null==e?void 0:e.tag)?n="**":"bold-italic"===(null==e?void 0:e.tag)&&(n="***");let r=`${n}@${this.name}${n}`;return 1===this.content.inlines.length?r=`${r} \u2014 ${t}`:this.content.inlines.length>1&&(r=`${r}\n${t}`),this.inline?`{${r}}`:r}}class br{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t